1. 程式人生 > 其它 >leetcode 199. 二叉樹的右檢視 劍指 Offer II 046. 二叉樹的右側檢視

leetcode 199. 二叉樹的右檢視 劍指 Offer II 046. 二叉樹的右側檢視

給定一個二叉樹的 根節點 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

來源:力扣(LeetCode)
連結:https://leetcode-cn.com/problems/binary-tree-right-side-view
著作權歸領釦網路所有。商業轉載請聯絡官方授權,非商業轉載請註明出處。

層級遍歷二叉樹

1:層級遍歷二叉樹,用兩個佇列來記錄每一層的節點。

2:當遇到最後一個節點的時候,則新增到list中。

    public List<Integer> rightSideView(TreeNode root) {
         List<Integer> list = new ArrayList<>();
        if (root == null) {
            return list;
        }
        Queue<TreeNode> a = new LinkedList<>();
        Queue
<TreeNode> b = new LinkedList<>(); a.offer(root); TreeNode pop = null; if (root == null) { return list; } while (!a.isEmpty()) { while (!a.isEmpty()) { pop = a.poll(); if (pop.left != null) { b.offer(pop.left); }
if (pop.right != null) { b.offer(pop.right); } } a = b; b = new LinkedList<>(); list.add(pop.val); } return list; }