给定一个二叉树,返回其按层次遍历的节点值。 (即逐层地,从左到右访问所有节点)。
和一般的遍历层次遍历没啥区别,只是每行都单独存在一个列表里
class TreeNode(object):
def __init__(self, x):
self.val = x
self.left = None
self.right = None
class Solution(object):
def levelOrder(self, root):
if root is None:
return []
res = []
li = []
li.append([root])
while len(li) != 0:
out_list = li.pop()
res_step = []
input_list = []
for node in out_list:
res_step.append(node.val)
if node.left:
input_list.append(node.left)
if node.right:
input_list.append(node.right)
if input_list:
li.append(input_list)
res.append(res_step)
return res
结果:
如果是LeetCode107题的从底向上的层次遍历,可以在最后输出之前将res进行翻转一下即可,但是这样的结果却是很差,击败了65%的选手
仍需改进,下一次在改进