File tree Expand file tree Collapse file tree 1 file changed +41
-0
lines changed
2641-cousins-in-binary-tree-ii Expand file tree Collapse file tree 1 file changed +41
-0
lines changed Original file line number Diff line number Diff line change
1
+ /**
2
+ * Definition for a binary tree node.
3
+ * public class TreeNode {
4
+ * int val;
5
+ * TreeNode left;
6
+ * TreeNode right;
7
+ * TreeNode() {}
8
+ * TreeNode(int val) { this.val = val; }
9
+ * TreeNode(int val, TreeNode left, TreeNode right) {
10
+ * this.val = val;
11
+ * this.left = left;
12
+ * this.right = right;
13
+ * }
14
+ * }
15
+ */
16
+ class Solution {
17
+ public TreeNode replaceValueInTree (TreeNode root ) {
18
+ Queue <TreeNode > q = new LinkedList <>();
19
+ q .offer (root );
20
+ int currentLevelSum = root .val ;
21
+ while (!q .isEmpty ()) {
22
+ int nextLevelSum = 0 ;
23
+ for (int sz = q .size (); sz > 0 ; --sz ) {
24
+ TreeNode n = q .poll ();
25
+ n .val = currentLevelSum - n .val ;
26
+ for (TreeNode kid : new TreeNode []{n .left , n .right }) {
27
+ if (kid != null ) {
28
+ q .offer (kid );
29
+ nextLevelSum += kid .val ;
30
+ }
31
+ }
32
+ if (n .left != null && n .right != null ) {
33
+ int sum = n .left .val + n .right .val ;
34
+ n .left .val = n .right .val = sum ;
35
+ }
36
+ }
37
+ currentLevelSum = nextLevelSum ;
38
+ }
39
+ return root ;
40
+ }
41
+ }
You can’t perform that action at this time.
0 commit comments