二叉树层序遍历题目
# 示例中输出不是一层一层输出,因为每层只输出一个值
# 遍历时结点还是全部添加,关键是在添加的结点中找到最右侧结点
# Definition for a binary tree node.
# class TreeNode(object):
# def __init__(self, val=0, left=None, right=None):
# self.val = val
# self.left = left
# self.right = right
from collections import deque
class Solution(object):
def rightSideView(self, root):
"""
:type root: TreeNode
:rtype: List[int]
"""
# 不是一层一层输出
# 遍历时结点还是全部添加,添加的结点中找到最右侧结点
result = []
if not root:
return result
que = deque([root])
while que:
temp = que[-1]
result.append(temp.val)
for _ in range(len(que)):
cur = que.popleft()
if cur.left:
que.append(cur.left)
if cur.right:
que.append(cur.right)
return result
本文介绍了一种求解二叉树右视图的方法。通过层序遍历的方式,每次记录每一层最后一个节点的值,从而得到从右侧看二叉树所呈现的节点值列表。
933

被折叠的 条评论
为什么被折叠?



