给定一个二叉树的 根节点 root,想象自己站在它的右侧,按照从顶部到底部的顺序,返回从右侧所能看到的节点值。
输入: [1,2,3,null,5,null,4] 输出: [1,3,4]解决方法:
public static List> levelOrder2(TreeNode root) { List
> result = new linkedList<>(); if (root == null) { return result; } reverseLevel(root,result,0); return result; } public static void reverseLevel(TreeNode node, List
> result, int leve){ if (result.size() == leve) { result.add(new linkedList<>()); } //加本层的 result.get(leve).add(node.val); //左孩子 if (node.left != null) { reverseLevel(node.left,result,leve+1); } //右孩子 if (node.right != null) { reverseLevel(node.right,result,leve+1); } } public List
rightSideView(TreeNode root) { List result = new ArrayList<>(); List > level = levelOrder2(root); for (List
integers : level) { result.add(integers.get(integers.size()-1)); } return result; }
参考:https://leetcode-cn.com/problems/binary-tree-right-side-view/



