中文题目
给定一个二叉树的 根节点 root
,想象自己站在它的右侧,按照从顶部到底部的顺序,返回从右侧所能看到的节点值。
示例 1:
输入: [1,2,3,null,5,null,4] 输出: [1,3,4]
示例 2:
输入: [1,null,3] 输出: [1,3]
示例 3:
输入: [] 输出: []
提示:
- 二叉树的节点个数的范围是
[0,100]
-100 <= Node.val <= 100
注意:本题与主站 199 题相同:https://leetcode-cn.com/problems/binary-tree-right-side-view/
通过代码
高赞题解
欲哭无泪,昨天腾讯面试面到的没写出来,今天发现就是当天剑指offerII计划的第三题啊啊,为啥我没勤快一点
# 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):
res = []
if not root:
return res
else:
cur, res = [], []
cur.append(root.left)
cur.append(root.right)
res.append(root.val)
while cur:
next_layer, view = [], []
for node in cur: # 访问当前层所有的节点,记录他们的子节点
if node:
next_layer.append(node.left)
next_layer.append(node.right)
view.append(node.val)
if view: # 此题目标操作
res.append(view[-1])
cur = next_layer # 进入下一子层
return res
统计信息
通过次数 | 提交次数 | AC比率 |
---|---|---|
4390 | 6087 | 72.1% |
提交历史
提交时间 | 提交结果 | 执行时间 | 内存消耗 | 语言 |
---|