当前位置 博文首页 > dastu的博客:二叉树的层次遍历(python的递归与非递归)----lee
非递归
class Solution:
def levelOrder(self, root: TreeNode) -> List[List[int]]:
if not root:
return []
res=[]
q=[root]
while q:
temp1=[]
temp2=[]
for node in q:
temp1.append(node.val)
if node.left:
temp2.append(node.left)
if node.right:
temp2.append(node.right)
res.append(temp1)
q=temp2
return res
递归
class Solution:
def levelOrder(self, root: TreeNode) -> List[List[int]]:
if not root:
return []
levels=[]
level=0
def helper(level,node):
if level==len(levels):
levels.append([])
levels[level].append(node.val)
if node.left:
helper(level+1,node.left)
if node.right:
helper(level+1,node.right)
return levels
res=helper(level,root)
return res
?
cs