[Leetcode in Java] 199. Binary Tree Right Side View


Posted by LarsonKao on 2022-05-26

199. Binary Tree Right Side View

Link

難易度 : Medium

依照對岸Carl大神的練習順序,接下來會連做10題類似觀念的題目,題號如下 :

question

題目要求回傳由上到下各層的"最右邊"的node val,那麼一樣使用這類題目的模板做法,只要在遍尋每層的時候額外判斷是否為"最後一個node"即可。

    class Solution
    {
        public List<Integer> rightSideView(TreeNode root)
        {
            Queue<TreeNode> queue = new LinkedList<TreeNode>();
            List<Integer> result = new ArrayList<Integer>();
            TreeNode current;
            if(root==null) 
            {
                return result;
            }
            queue.add(root);
            while(!queue.isEmpty()) 
            {
                int size = queue.size();
                //遍尋此層數量的所有node 之後加入的不與理會
                for(int i=0;i<size;i++) 
                {
                    current = queue.poll();
                    if(current.left!=null) 
                    {
                        queue.add(current.left);
                    }
                    if(current.right!=null) 
                    {
                        queue.add(current.right);
                    }
                    //當是此層最後一個node時
                    if(i==size-1) 
                    {
                        result.add(current.val);
                    }
                }
            }
            return result;
        }
    }

result


#Leetcode #java #algorithm #Queue #binary tree #BFS







Related Posts

T1.1_Sass 裝好了,可是 - -watch 不能用?

T1.1_Sass 裝好了,可是 - -watch 不能用?

day_04: 我不會物件導向

day_04: 我不會物件導向

Guided Policy Search 環境安裝

Guided Policy Search 環境安裝


Comments