File tree 1 file changed +16
-15
lines changed
1 file changed +16
-15
lines changed Original file line number Diff line number Diff line change 15
15
*/
16
16
class Solution {
17
17
public int sumOfLeftLeaves (TreeNode root ) {
18
- if (root == null ) {
19
- return 0 ;
20
- }
21
18
int sum = 0 ;
22
19
Queue <TreeNode []> queue = new LinkedList <>();
23
20
queue .add (new TreeNode []{root , null });
24
21
while (!queue .isEmpty ()) {
25
- TreeNode [] removed = queue .remove ();
26
- if (removed [0 ].left == null && removed [0 ].right == null ) {
27
- if (removed [1 ] != null && removed [1 ].left == removed [0 ]) {
28
- sum += removed [0 ].val ;
29
- }
30
- }
31
- else {
32
- if (removed [0 ].left != null ) {
33
- queue .add (new TreeNode []{removed [0 ].left , removed [0 ]});
34
- }
35
- if (removed [0 ].right != null ) {
36
- queue .add (new TreeNode []{removed [0 ].right , removed [0 ]});
22
+ int size = queue .size ();
23
+ while (size -- > 0 ) {
24
+ TreeNode [] removed = queue .remove ();
25
+ TreeNode node = removed [0 ];
26
+ TreeNode parent = removed [1 ];
27
+ if (node .left == null && node .right == null ) {
28
+ if (parent != null && parent .left == node ) {
29
+ sum += node .val ;
30
+ }
31
+ } else {
32
+ if (node .left != null ) {
33
+ queue .add (new TreeNode []{node .left , node });
34
+ }
35
+ if (node .right != null ) {
36
+ queue .add (new TreeNode []{node .right , node });
37
+ }
37
38
}
38
39
}
39
40
}
You can’t perform that action at this time.
0 commit comments