199二叉树的右视图

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

来源: https://leetcode-cn.com/problems/binary-tree-right-side-view/

法一: 自己的代码

构建一个队列,每次都从右边取值,用双层循环实现层序遍历.

# 执行用时 :32 ms, 在所有 python3 提交中击败了98.01% 的用户
# 内存消耗 :12.8 MB, 在所有 python3 提交中击败了100.00%的用户
# Definition for a binary tree node.
class TreeNode:
    def __init__(self, x):
        self.val = x
        self.left = None
        self.right = None
from typing import List
class Solution:
    def rightSideView(self, root: TreeNode) -> List[int]:
        result = []
        if root is None:
            return []
        queue = []
        queue_next = []
        queue_next.append(root)
        while queue_next:
            queue = queue_next
            queue_next = []
            result.append(queue[0].val)
            while queue:
                a = queue.pop(0)
                if a.right:
                    queue_next.append(a.right)
                if a.left:
                    queue_next.append(a.left)
        return result
View Code

猜你喜欢

转载自www.cnblogs.com/xxswkl/p/12012557.html