题目描述:
题解:递归
参考了评论区的思路
1.递归终止条件:输入root节点为空。
2.递归返回值:保存右侧节点值的列表。
3.当前轮递归:判断输入root节点是否为当前层最右侧的节点,如果是就加入列表。否则对root的右子节点和左子节点递归调用。
class Solution(object): def rightSideView(self, root): rightres = [] depth = 0 def repeat(root,depth): if root==None: return if depth==len(rightres): rightres.append(root.val) depth=depth+1 repeat(root.right,depth) repeat(root.left, depth) repeat(root,depth) return rightres