Skip to content

Commit a94d9a4

Browse files
committed
129 with generators instead of lists
1 parent 7c7bad9 commit a94d9a4

File tree

1 file changed

+9
-8
lines changed

1 file changed

+9
-8
lines changed

129 sum root to leaf number

+9-8
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
from typing import Optional
1+
from typing import Optional, Iterator
22

33
# Definition for a binary tree node.
44
class TreeNode:
@@ -12,13 +12,14 @@ class Solution:
1212
def sumNumbers(self, root: Optional[TreeNode]) -> int:
1313
if not root:
1414
return 0
15-
return sum(int(num) for num in sumn(root))
15+
return sum(int(decimal) for decimal in sumgen(root))
1616

1717

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)
2121
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))

0 commit comments

Comments
 (0)