LeetCode 199. Binary Tree Right Side View

  • 求解二叉树的右视图
    • 其实就是每一层最右边的节点,那么如果能够得到每一层所有节点的有序集合,就很容易得到结果
    • 那么首先联想到了做过的二叉树按层次遍历,得到层次遍历集合之后,取每一层的最后一个元素
package tree.No199;

import java.util.ArrayList;
import java.util.List;


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

class Solution {
    public static List<Integer> rightSideView(TreeNode root) {
        List<List<Integer>> result = new ArrayList<List<Integer>>();
        if(root != null)
            recursion(result,0,root);
        List<Integer> view = new ArrayList<Integer>();
        for(List<Integer> a : result){
            view.add(a.get(a.size()-1));
        }
        return view;
    }

    public static void recursion(List<List<Integer>> result,int height, TreeNode node){
        if(height >= result.size())
            result.add(new ArrayList<Integer>());
        result.get(height).add(node.val);
        if(node.left != null)
            recursion(result,height+1,node.left);
        if(node.right != null)
            recursion(result,height+1,node.right);
    }
}

相关文章:

  • 2022-12-23
  • 2021-07-17
  • 2021-06-14
  • 2021-10-29
  • 2021-07-01
  • 2021-10-07
猜你喜欢
  • 2021-08-08
  • 2021-11-30
  • 2021-10-06
  • 2021-10-02
相关资源
相似解决方案