199. Binary Tree Right Side View
題目描述
假設站在二叉樹右側, 求能看到的節點.
解題思路
層序遍歷, 每層的最後一個就是能被看到的.
代碼
Python
# Definition for a binary tree node.
# class TreeNode:
# def __init__(self, x):
# self.val = x
# self.left = None
# self.right = None
class Solution:
def rightSideView(self, root: TreeNode) -> List[int]:
if not root:
return []
if root.left == None and root.right == None:
return [root.val]
# 層序遍歷的最後一個
queue = [root]
cur = []
res = [root.val]
while queue:
node = queue.pop(0)
if node.left: cur.append(node.left)
if node.right: cur.append(node.right)
if not queue:
queue += cur
if cur: res.append(cur[-1].val)
cur = []
return res