File tree 1 file changed +9
-8
lines changed
1 file changed +9
-8
lines changed Original file line number Diff line number Diff line change 1
- from typing import Optional
1
+ from typing import Optional, Iterator
2
2
3
3
# Definition for a binary tree node.
4
4
class TreeNode:
@@ -12,13 +12,14 @@ class Solution:
12
12
def sumNumbers(self, root: Optional[TreeNode]) -> int:
13
13
if not root:
14
14
return 0
15
- return sum(int(num ) for num in sumn (root))
15
+ return sum(int(decimal ) for decimal in sumgen (root))
16
16
17
17
18
- def sumn (node: TreeNode) -> list [str]:
19
- if not ( node.left or node.right) :
20
- return [ str(node.val)]
18
+ def sumgen (node: TreeNode) -> Iterator [str]:
19
+ if not node.left and not node.right:
20
+ yield str(node.val)
21
21
digit = str(node.val)
22
- left = [digit + num for num in sumn(node.left)] if node.left else []
23
- right = [digit + num for num in sumn(node.right)] if node.right else []
24
- return left + right
22
+ if node.left:
23
+ yield from (digit + decimal for decimal in sumgen(node.left))
24
+ if node.right:
25
+ yield from (digit + decimal for decimal in sumgen(node.right))
You can’t perform that action at this time.
0 commit comments