0%

Leetcode 199 二叉树的右视图

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

思路很简单,就是层序遍历,每次取每一层的最后一个节点的值即可。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
# Definition for a binary tree node.
# class TreeNode:
# def __init__(self, val=0, left=None, right=None):
# self.val = val
# self.left = left
# self.right = right

class Solution:
def rightSideView(self, root: Optional[TreeNode]) -> List[int]:
if not root: return []
stack, ans = [root], []
while stack:
tmp = []
cur = stack[-1]
ans.append(cur.val)
for node in stack:
if node.left: tmp.append(node.left)
if node.right: tmp.append(node.right)
stack = tmp
return ans