题目链接:https://leetcode-cn.com/problems/binary-tree-right-side-view/
难度:中等

描述:
给定一个二叉树的 根节点 root,想象自己站在它的右侧,按照从顶部到底部的顺序,返回从右侧所能看到的节点值。

题解

我们只需要找到每层最右边的节点即可。

  1. # Definition for a binary tree node.
  2. # class TreeNode:
  3. # def __init__(self, val=0, left=None, right=None):
  4. # self.val = val
  5. # self.left = left
  6. # self.right = right
  7. class Solution:
  8. def rightSideView(self, root: TreeNode) -> List[int]:
  9. ret = []
  10. def dfs(root, level):
  11. if root is None:
  12. return
  13. # 说明是该层最右侧的节点
  14. if len(ret) == level:
  15. ret.append(root.val)
  16. level += 1
  17. dfs(root.right, level)
  18. dfs(root.left, level)
  19. dfs(root, 0)
  20. return ret