@@ -51,21 +51,142 @@ Sum of every tilt : 0 + 0 + 0 + 2 + 7 + 6 = 15
51
51
<li><code>-1000 <= Node.val <= 1000</code></li>
52
52
</ul >
53
53
54
-
55
54
## Solutions
56
55
57
56
<!-- tabs:start -->
58
57
59
58
### ** Python3**
60
59
61
60
``` python
62
-
61
+ # Definition for a binary tree node.
62
+ # class TreeNode:
63
+ # def __init__(self, val=0, left=None, right=None):
64
+ # self.val = val
65
+ # self.left = left
66
+ # self.right = right
67
+ class Solution :
68
+ def findTilt (self , root : TreeNode) -> int :
69
+ ans = 0
70
+
71
+ def sum (root ):
72
+ if root is None :
73
+ return 0
74
+ nonlocal ans
75
+ left = sum (root.left)
76
+ right = sum (root.right)
77
+ ans += abs (left - right)
78
+ return root.val + left + right
79
+
80
+ sum (root)
81
+ return ans
63
82
```
64
83
65
84
### ** Java**
66
85
67
86
``` java
87
+ /**
88
+ * Definition for a binary tree node.
89
+ * public class TreeNode {
90
+ * int val;
91
+ * TreeNode left;
92
+ * TreeNode right;
93
+ * TreeNode() {}
94
+ * TreeNode(int val) { this.val = val; }
95
+ * TreeNode(int val, TreeNode left, TreeNode right) {
96
+ * this.val = val;
97
+ * this.left = left;
98
+ * this.right = right;
99
+ * }
100
+ * }
101
+ */
102
+ class Solution {
103
+ private int ans;
104
+
105
+ public int findTilt (TreeNode root ) {
106
+ ans = 0 ;
107
+ sum(root);
108
+ return ans;
109
+ }
110
+
111
+ private int sum (TreeNode root ) {
112
+ if (root == null ) {
113
+ return 0 ;
114
+ }
115
+ int left = sum(root. left);
116
+ int right = sum(root. right);
117
+ ans += Math . abs(left - right);
118
+ return root. val + left + right;
119
+ }
120
+ }
121
+ ```
122
+
123
+ ### ** C++**
124
+
125
+ ``` cpp
126
+ /* *
127
+ * Definition for a binary tree node.
128
+ * struct TreeNode {
129
+ * int val;
130
+ * TreeNode *left;
131
+ * TreeNode *right;
132
+ * TreeNode() : val(0), left(nullptr), right(nullptr) {}
133
+ * TreeNode(int x) : val(x), left(nullptr), right(nullptr) {}
134
+ * TreeNode(int x, TreeNode *left, TreeNode *right) : val(x), left(left), right(right) {}
135
+ * };
136
+ */
137
+ class Solution {
138
+ public:
139
+ int ans;
140
+
141
+ int findTilt(TreeNode* root) {
142
+ ans = 0;
143
+ sum(root);
144
+ return ans;
145
+ }
146
+
147
+ int sum (TreeNode* root) {
148
+ if (!root) return 0;
149
+ int left = sum(root->left), right = sum(root->right);
150
+ ans += abs(left - right);
151
+ return root->val + left + right;
152
+ }
153
+ };
154
+ ```
68
155
156
+ ### **Go**
157
+
158
+ ```go
159
+ /**
160
+ * Definition for a binary tree node.
161
+ * type TreeNode struct {
162
+ * Val int
163
+ * Left *TreeNode
164
+ * Right *TreeNode
165
+ * }
166
+ */
167
+ var ans int
168
+
169
+ func findTilt(root *TreeNode) int {
170
+ ans = 0
171
+ sum(root)
172
+ return ans
173
+ }
174
+
175
+ func sum(root *TreeNode) int {
176
+ if root == nil {
177
+ return 0
178
+ }
179
+ left, right := sum(root.Left), sum(root.Right)
180
+ ans += abs(left - right)
181
+ return root.Val + left + right
182
+ }
183
+
184
+ func abs(x int) int {
185
+ if x > 0 {
186
+ return x
187
+ }
188
+ return -x
189
+ }
69
190
```
70
191
71
192
### ** ...**
0 commit comments