美文网首页
199.二叉树的右视图

199.二叉树的右视图

作者: 无力韬韬 | 来源:发表于2020-09-07 17:01 被阅读0次

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

    示例:
    输入: [1,2,3,null,5,null,4]
    输出: [1, 3, 4]

    解释:

         1            <---
    
        /  \
    
       2    3        <---
    
         \      \
    
          5      4      <---
    

    来源:力扣(LeetCode)
    链接:https://leetcode-cn.com/problems/binary-tree-right-side-view

    右视图顾名思义就是从二叉树的右边向左看得到的数字。

    保存层序遍历中每层的最后一个数字即可。

    /**

    • Definition for a binary tree node.

    • public class TreeNode {

    • int val;
      
    • TreeNode left;
      
    • TreeNode right;
      
    • TreeNode(int x) { val = x; }
      
    • }

    */

    class Solution {

    public List<Integer> rightSideView(TreeNode root) {
    
        List<Integer> list=new LinkedList<>();
    
        Queue<TreeNode> queue=new LinkedList<>();
    
        if(root==null)
    
        return list;
    
        queue.add(root);
    
        while(!queue.isEmpty())
    
        {
    
            int num=queue.size();
    
               if(num==1)
    
                {
    
                root=queue.poll();
    
                list.add(root.val);
    
                 if(root.left!=null)
    
                  queue.add(root.left);
    
                  if(root.right!=null)
    
                   queue.add(root.right);
    
                }
    
            while(num>1)
    
            {   
    
    
    
                 root=queue.poll();
    
                 num--;
    
                 if(root.left!=null)
    
                  queue.add(root.left);
    
                  if(root.right!=null)
    
                   queue.add(root.right);
    
                  if(num==1)
    
                {
    
                     root=queue.poll();
    
                      if(root.left!=null)
    
                  queue.add(root.left);
    
                  if(root.right!=null)
    
                   queue.add(root.right);
    
                list.add(root.val);
    
                }
    
    
    
            }
    
    
    
        }
    
        return list;
    
    }
    

    }

    优化过的版本:

    相关文章

      网友评论

          本文标题:199.二叉树的右视图

          本文链接:https://www.haomeiwen.com/subject/andlektx.html