199. 二叉树的右视图 --力扣 --JAVA

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

 题目

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

解题思路

    1. List添加元素的顺序可以作为树的层级;
    2. 将树以根右左的顺序遍历;
    3. 若当前层级已添加过元素则不再添加。

    代码展示

    class Solution {
        List<Integer> ans = new ArrayList<>();
        public List<Integer> rightSideView(TreeNode root) {
            rightView(root,0);
            return ans;
        }
        public void rightView(TreeNode root, int height){
            if(root == null){
                return;
            }
            if(ans.size() <= height || ans.get(height) == null){
                ans.add(root.val);
            }
            height++;
            rightView(root.right, height);
            rightView(root.left, height);
        }
    }

    image.gif


    目录
    相关文章
    |
    1月前
    【LeetCode 31】104.二叉树的最大深度
    【LeetCode 31】104.二叉树的最大深度
    19 2
    |
    1月前
    【LeetCode 29】226.反转二叉树
    【LeetCode 29】226.反转二叉树
    15 2
    |
    1月前
    【LeetCode 28】102.二叉树的层序遍历
    【LeetCode 28】102.二叉树的层序遍历
    15 2
    |
    1月前
    |
    Java
    【用Java学习数据结构系列】震惊,二叉树原来是要这么学习的(二)
    【用Java学习数据结构系列】震惊,二叉树原来是要这么学习的(二)
    27 1
    |
    21天前
    |
    算法 Java
    JAVA 二叉树面试题
    JAVA 二叉树面试题
    14 0
    |
    1月前
    【LeetCode 43】236.二叉树的最近公共祖先
    【LeetCode 43】236.二叉树的最近公共祖先
    18 0
    |
    1月前
    【LeetCode 38】617.合并二叉树
    【LeetCode 38】617.合并二叉树
    14 0
    |
    1月前
    【LeetCode 37】106.从中序与后序遍历构造二叉树
    【LeetCode 37】106.从中序与后序遍历构造二叉树
    16 0
    |
    1月前
    【LeetCode 34】257.二叉树的所有路径
    【LeetCode 34】257.二叉树的所有路径
    12 0
    |
    1月前
    【LeetCode 32】111.二叉树的最小深度
    【LeetCode 32】111.二叉树的最小深度
    16 0