File tree Expand file tree Collapse file tree 1 file changed +45
-0
lines changed Expand file tree Collapse file tree 1 file changed +45
-0
lines changed Original file line number Diff line number Diff line change 1+ let TreeNode = require ( '../工具/二叉树.js' )
2+
3+ var pathSum = function ( root , sum ) {
4+ let res = [ ] ;
5+ let search = function ( node , paths ) {
6+ if ( ! node . val ) return
7+ paths . push ( node . val ) ;
8+ if ( node . left ) {
9+ search ( node . left , paths ) ;
10+ }
11+ if ( node . right ) {
12+ search ( node . right , paths ) ;
13+ }
14+ if ( ! node . left && ! node . right ) {
15+ if ( sumVals ( paths ) === sum ) {
16+ res . push ( paths . slice ( ) ) ;
17+ }
18+ }
19+ paths . pop ( ) ;
20+ } ;
21+ search ( root , [ ] ) ;
22+ return res ;
23+ } ;
24+
25+ function sumVals ( nodes ) {
26+ return nodes . reduce ( ( prev , val ) => {
27+ prev += val ;
28+ return prev ;
29+ } , 0 ) ;
30+ }
31+
32+
33+ var t = new TreeNode ( 5 )
34+ t . left = new TreeNode ( 4 )
35+ t . left . left = new TreeNode ( 11 )
36+ t . left . left . left = new TreeNode ( 7 )
37+ t . left . left . right = new TreeNode ( 2 )
38+
39+ t . right = new TreeNode ( 8 )
40+ t . right . left = new TreeNode ( 13 )
41+ t . right . right = new TreeNode ( 4 )
42+ t . right . right . left = new TreeNode ( 5 )
43+ t . right . right . right = new TreeNode ( 1 )
44+
45+ console . log ( pathSum ( new TreeNode ( ) , 22 ) )
You can’t perform that action at this time.
0 commit comments