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


    目录
    相关文章
    |
    6天前
    |
    存储 Java
    ZigZagging on a Tree二叉树蛇形层次遍历(Java语言)
    ZigZagging on a Tree二叉树蛇形层次遍历(Java语言)
    11 1
    |
    6天前
    |
    Java
    Tree Traversals Again(Java语言)(先序和中序创建二叉树)(遍历树)
    Tree Traversals Again(Java语言)(先序和中序创建二叉树)(遍历树)
    13 4
    |
    6天前
    leetcode代码记录(二叉树的所有路径
    leetcode代码记录(二叉树的所有路径
    12 0
    |
    1天前
    |
    算法
    数据结构与算法⑮(第四章_下)二叉树OJ(力扣:144,965,104,110,226,100,101,572)(下)
    数据结构与算法⑮(第四章_下)二叉树OJ(力扣:144,965,104,110,226,100,101,572)
    7 1
    |
    1天前
    |
    算法 C++
    数据结构与算法⑮(第四章_下)二叉树OJ(力扣:144,965,104,110,226,100,101,572)(上)
    数据结构与算法⑮(第四章_下)二叉树OJ(力扣:144,965,104,110,226,100,101,572)
    7 1
    |
    6天前
    leetcode代码记录(对称二叉树 中序遍历+回文串 为什么不行
    leetcode代码记录(对称二叉树 中序遍历+回文串 为什么不行
    8 0
    |
    6天前
    leetcode代码记录(二叉树的最小深度
    leetcode代码记录(二叉树的最小深度
    10 0
    |
    6天前
    leetcode代码记录(二叉树的最大深度
    leetcode代码记录(二叉树的最大深度
    9 0
    |
    6天前
    leetcode代码记录(翻转二叉树
    leetcode代码记录(翻转二叉树
    8 0
    |
    6天前
    leetcode代码记录(二叉树的层序遍历
    leetcode代码记录(二叉树的层序遍历
    12 0