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)运行后,将报告以下错误:
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**发布于 2022-08-30 01:46:58
TreeNode是由LeetCode定义的类。您需要复制它们的类定义,在代码顶部的注释中给出:
# Definition for a binary tree node.
# class TreeNode:
# def __init__(self, val=0, left=None, right=None):
# self.val = val
# self.left = left
# self.right = right您还需要将测试用例构造为TreeNode而不是列表。
https://stackoverflow.com/questions/73500897
复制相似问题