Skip to content

Commit 28ea2b1

Browse files
committed
Update 129.sum-root-to-leaf-numbers.md
1 parent 7dee275 commit 28ea2b1

File tree

1 file changed

+74
-1
lines changed

1 file changed

+74
-1
lines changed

problems/129.sum-root-to-leaf-numbers.md

Lines changed: 74 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -74,7 +74,7 @@ https://leetcode-cn.com/problems/sum-root-to-leaf-numbers/
7474

7575
## 代码
7676

77-
* 语言支持:JS,C++,Python
77+
* 语言支持:JS,C++,Python, Go, PHP
7878

7979
JavaScipt Code:
8080

@@ -168,6 +168,79 @@ class Solution:
168168
return helper(root, 0)
169169
```
170170

171+
Go Code:
172+
173+
```go
174+
/**
175+
* Definition for a binary tree node.
176+
* type TreeNode struct {
177+
* Val int
178+
* Left *TreeNode
179+
* Right *TreeNode
180+
* }
181+
*/
182+
func sumNumbers(root *TreeNode) int {
183+
return helper(root, 0)
184+
}
185+
186+
func helper(root *TreeNode, cur int) int {
187+
if root == nil {
188+
return 0 // 当前非叶子节点, 不计算
189+
}
190+
191+
next := cur*10 + root.Val
192+
if root.Left == nil && root.Right == nil {
193+
return next // 当前为叶子节点, 计算
194+
}
195+
196+
l := helper(root.Left, next)
197+
r := helper(root.Right, next)
198+
return l + r
199+
}
200+
```
201+
202+
PHP Code:
203+
204+
```php
205+
/**
206+
* Definition for a binary tree node.
207+
* class TreeNode {
208+
* public $val = null;
209+
* public $left = null;
210+
* public $right = null;
211+
* function __construct($value) { $this->val = $value; }
212+
* }
213+
*/
214+
class Solution
215+
{
216+
217+
/**
218+
* @param TreeNode $root
219+
* @return Integer
220+
*/
221+
function sumNumbers($root)
222+
{
223+
return (new Solution())->helper($root, 0);
224+
}
225+
226+
/**
227+
* @param TreeNode $root
228+
* @param int $cur
229+
* @return int
230+
*/
231+
function helper($root, $cur)
232+
{
233+
if (!$root) return 0; // 当前不是叶子节点
234+
$next = $cur * 10 + $root->val;
235+
if (!$root->left && !$root->right) return $next; // 当前为叶子节点, 返回叶子节点的值
236+
237+
$l = (new Solution())->helper($root->left, $next);
238+
$r = (new Solution())->helper($root->right, $next);
239+
return $l + $r;
240+
}
241+
}
242+
```
243+
171244
**复杂度分析**
172245

173246
- 时间复杂度:$O(N)$

0 commit comments

Comments
 (0)