二叉树的层序遍历II
解法:队列+栈
力扣102.⼆叉树的层序遍历 --python:
https://blog.csdn.net/weixin_45047081/article/details/115797910?spm=1001.2014.3001.5501
此题和之前的102.二叉树的层序遍历几乎一致,只是最后的返回值为倒序输出,即可理解为后添加的值,先输出。会发现,方式和栈完全一致
因此,做法和之前一致,只在最后进行循环遍历退栈
代码如下:
class Solution:
def levelOrderBottom(self, root: TreeNode) -> List[List[int]]:
if not root:
return []
rtn=[]
query=[root]
while query:
size=len(query)
faker=[]
for _ in range(size):
x=query.pop(0)
faker.append(x.val)
if x.left:
query.append(x.left)
if x.right:
query.append(x.right)
rtn.append(faker)
rtn=[rtn.pop() for i in range(len(rtn))]
return rtn