记录了初步解题思路 以及本地实现代码;并不一定为最优 也希望大家能一起探讨 一起进步
107. binary-tree-level-order-traversal-ii 二叉树的层次遍历II
解题思路:
广度优先 将node放入队列中 先进先出
class TreeNode(object):
def __init__(self, x):
self.val = x
self.left = None
self.right = None
def levelOrderBottom(root):
"""
:type root: TreeNode
:rtype: List[List[int]]
"""
if not root:
return []
l =[]
l.append((root,0))
tmpl=[]
tmp=0
ret=[]
while len(l)>0:
v,level = l.pop(0)
if tmp==level:
tmpl.append(v.val)
else:
ret=[tmpl]+ret
tmpl=[v.val]
tmp=level
if v.left:
l.append((v.left,level+1))
if v.right:
l.append((v.right,level+1))
ret =[tmpl]+ret
return ret
别的题已在深度优先搜索提及 详见:https://blog.csdn.net/zkt286468541/article/details/83035716