版权声明:小明酱私有,私自转载要捶你小胸口哦~ https://blog.csdn.net/alicelmx/article/details/82493611
题目
基本思路
这道题要求返回的是每一层的最后一个元素,既然提到了层,想必就是层次遍历了,采用层序遍历递归写法。
层次遍历代码需要抽象出来,牢牢记住了。
代码
# Definition for a binary tree node.
# class TreeNode(object):
# def __init__(self, x):
# self.val = x
# self.left = None
# self.right = None
class Solution(object):
def rightSideView(self, root):
"""
:type root: TreeNode
:rtype: List[int]
"""
res = []
self.levelOrder(root,0,res)
return [level[-1] for level in res]
def levelOrder(self,root,level,res):
if not root:
return
if level == len(res):
res.append([])
res[level].append(root.val)
self.levelOrder(root.left,level+1,res)
self.levelOrder(root.right,level+1,res)