leetcode 199. Binary Tree Right Side View

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
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章