题目:
从上到下按层打印二叉树,同一层的节点按从左到右的顺序打印,每一层打印到一行。
例如:
给定二叉树: [3,9,20,null,null,15,7],
3
/ \
9 20
/ \
15 7
返回其层次遍历结果:
[
[3],
[9,20],
[15,7]
]
提示:
节点总数 <= 1000
题目的理解:
递归遍历二叉树
python实现
# Definition for a binary tree node.
from typing import List
class TreeNode:
def __init__(self, x):
self.val = x
self.left = None
self.right = None
class Solution:
def levelOrder(self, root: TreeNode) -> List[List[int]]:
if root is None:
return list()
result = list(list())
group = list()
group.append(root)
self.reverse(group, result)
return result
def reverse(self, group: List, result: List[List[int]]):
temp = list()
nums = list()
if group is None or len(group) == 0:
return
for node in group:
if node is not None:
nums.append(node.val)
if node.left is not None:
temp.append(node.left)
if node.right is not None:
temp.append(node.right)
result.append(nums)
self.reverse(temp, result)
提交

// END 每天跳跳舞,发现颈椎好了很多啊
网友评论