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


    目录
    相关文章
    |
    2月前
    |
    存储 算法
    二叉树进阶-学会层序遍历助你一次刷完leetcode10道题
    文章深入探讨了二叉树的层序遍历方法,并展示了如何通过队列实现层序遍历的算法逻辑,同时指出掌握层序遍历技巧可以帮助解决LeetCode上的多道相关题目。
    二叉树进阶-学会层序遍历助你一次刷完leetcode10道题
    |
    2月前
    |
    算法 Java
    LeetCode第94题二叉树的中序遍历
    文章介绍了LeetCode第94题"二叉树的中序遍历"的解法,使用递归实现了中序遍历的过程,遵循了"左根右"的遍历顺序,并提供了清晰的Java代码实现。
    LeetCode第94题二叉树的中序遍历
    |
    2月前
    |
    算法 Java
    LeetCode经典算法题:矩阵中省份数量经典题目+三角形最大周长java多种解法详解
    LeetCode经典算法题:矩阵中省份数量经典题目+三角形最大周长java多种解法详解
    39 6
    |
    2月前
    |
    存储 算法 Java
    LeetCode经典算法题:打家劫舍java详解
    LeetCode经典算法题:打家劫舍java详解
    55 2
    |
    2月前
    |
    人工智能 算法 Java
    LeetCode经典算法题:井字游戏+优势洗牌+Dota2参议院java解法
    LeetCode经典算法题:井字游戏+优势洗牌+Dota2参议院java解法
    41 1
    |
    2月前
    |
    存储 算法 Java
    LeetCode经典算法题:预测赢家+香槟塔java解法
    LeetCode经典算法题:预测赢家+香槟塔java解法
    40 1
    |
    2月前
    |
    存储 算法 Java
    LeetCode经典算法题:二叉树遍历(递归遍历+迭代遍历+层序遍历)以及线索二叉树java详解
    LeetCode经典算法题:二叉树遍历(递归遍历+迭代遍历+层序遍历)以及线索二叉树java详解
    65 0
    |
    2月前
    |
    算法 Java
    LeetCode初级算法题:子数组最大平均数+二叉树的最小深度+最长连续递增序列+柠檬水找零
    LeetCode初级算法题:子数组最大平均数+二叉树的最小深度+最长连续递增序列+柠檬水找零
    34 0
    |
    2月前
    |
    算法 Java
    LeetCode初级算法题:环形链表+排列硬币+合并两个有序数组java解法
    LeetCode初级算法题:环形链表+排列硬币+合并两个有序数组java解法
    46 0
    |
    2月前
    |
    存储 算法 Java
    LeetCode初级算法题:两数之和+斐波拉契数列多种java解法
    LeetCode初级算法题:两数之和+斐波拉契数列多种java解法
    23 0
    下一篇
    无影云桌面