zoukankan      html  css  js  c++  java
  • 199. Binary Tree Right Side View

    class Solution {
        public List<Integer> rightSideView(TreeNode root) {
            List<Integer> res=new ArrayList<Integer>();
            rightView(root, res, 0);
            return res;
        }
        private void rightView(TreeNode node, List<Integer> res, int depth){
            if(node==null)
                return;
            if(depth==res.size())
                res.add(node.val);
            rightView(node.right, res, depth+1);
            rightView(node.left, res, depth+1);
        }
    }
    
    class Solution {
        public List<Integer> rightSideView(TreeNode root) {
            List<Integer> res=new ArrayList<Integer>();
            if(root==null)
                return res;
            Queue<TreeNode> que=new LinkedList<TreeNode>();
            que.add(root);
            que.add(null);
            boolean right=true;
            while(!que.isEmpty())
            {
                TreeNode node=que.poll();
                if(node==null)
                {
                    right=true;
                    if(!que.isEmpty())
                        que.add(node);
                }
                else
                {
                    if(right==true)
                    {
                        res.add(node.val);
                        right=false;
                    }
                    if(node.right!=null)que.add(node.right);
                    if(node.left!=null)que.add(node.left);
                }
            }
            return res;
        }
    }
    

      

  • 相关阅读:
    模板方法模式
    组合模式
    JS API文档
    支持 @connect写法
    PHP word导入题库
    go 复制文件和创建目录
    go文件写入
    go 文件读取
    gin连接mysql数据库
    gin多数据格式返回结果
  • 原文地址:https://www.cnblogs.com/asuran/p/7734096.html
Copyright © 2011-2022 走看看