from typing import Optional
class Solution:
def findLeaves(self,root: Optional[TreeNode]) -> list[list[int]]:
def post_order(node):
nonlocal lookup
if not node:
return 0
left_depth = post_order(node.left)
right_depth = post_order(node.right)
curr_depth = max(left_depth,right_depth) + 1
lookup(curr_depth).append(node.val)
return curr_depth
lookup = defaultdict(list)
post_order(root)
return lookup.values()
demo = Solution()
root = [1,2,3,4,5]
v = demo.findLeaves(root)
print(v)
After running, the following error is reported:
Traceback (most recent call last):
File "E:\pythonProject\LeetCode\366_find_leaf_nodes.py", line 2, in <module>
class Solution:
File "E:\pythonProject\LeetCode\366_find_leaf_nodes.py", line 3, in Solution
def findLeaves(self,root: TreeNode) -> list[list[int]]:
NameError: name 'TreeNode' is not defined**