Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /**
- * Definition for a binary tree node.
- * public class TreeNode {
- * int val;
- * TreeNode left;
- * TreeNode right;
- * TreeNode() {}
- * TreeNode(int val) { this.val = val; }
- * TreeNode(int val, TreeNode left, TreeNode right) {
- * this.val = val;
- * this.left = left;
- * this.right = right;
- * }
- * }
- */
- class Solution {
- public List<Integer> largestValues(TreeNode root) {
- HashMap<Integer,Integer> maxValues = largestValuesHelper(root,0);
- if(maxValues==null)
- return new LinkedList<Integer>();
- LinkedList<Integer> out = new LinkedList<Integer>();
- for(int i = 0; i<maxValues.size();i++){
- out.add(maxValues.get(i));
- }
- return out;
- }
- public HashMap<Integer,Integer> largestValuesHelper(TreeNode node,int row){
- HashMap<Integer, Integer> maxRight = new HashMap<Integer, Integer>(),
- max=new HashMap<Integer,Integer>();
- if(node==null){
- return null;
- }
- if(node.left!=null){
- max=largestValuesHelper(node.left,row+1);
- }
- if(node.right!=null){
- maxRight=largestValuesHelper(node.right,row+1);
- }
- max.put(row,node.val);
- for(Integer level:maxRight.keySet()){
- max.put(level,Math.max(maxRight.get(level),max.getOrDefault(level,Integer.MIN_VALUE)));
- }
- return max;
- }
- }
Add Comment
Please, Sign In to add comment