算法系列——二叉树的右视图

Posted BridgeGeorge

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了算法系列——二叉树的右视图相关的知识,希望对你有一定的参考价值。

题目

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

思路

广度优先遍历 输出每一层的最后一个结点即可。

代码


/**
 * Definition for a binary tree node.
 * public class TreeNode 
 *     int val;
 *     TreeNode left;
 *     TreeNode right;
 *     TreeNode() 
 *     TreeNode(int val)  this.val = val; 
 *     TreeNode(int val, TreeNode left, TreeNode right) 
 *         this.val = val;
 *         this.left = left;
 *         this.right = right;
 *     
 * 
 */
class Solution 
    public List<Integer> rightSideView(TreeNode root) 
        List<Integer> res=new ArrayList<>();
        if(root==null)
            return res;
        
        Queue<TreeNode> queue=new LinkedList<>();
        queue.add(root);
        while(queue.size()>0)
           int size= queue.size();
           for(int i=0;i<size;i++)
              TreeNode node= queue.poll();
                if(node.left!=null)
                    queue.add(node.left);
                
                if(node.right!=null)
                    queue.add(node.right); 
                
                if(i==size-1)
                    res.add(node.val);
                
           
            
        
        return res;
    



以上是关于算法系列——二叉树的右视图的主要内容,如果未能解决你的问题,请参考以下文章

199. 二叉树的右视图

199. 二叉树的右视图

LeetCode——199. 二叉树的右视图

二叉树层序遍历集合

二叉树--二叉树的右视图

面试---算法面试