cperryoh

Untitled

Oct 24th, 2023
61
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 1.47 KB | None | 0 0
  1. /**
  2.  * Definition for a binary tree node.
  3.  * public class TreeNode {
  4.  *     int val;
  5.  *     TreeNode left;
  6.  *     TreeNode right;
  7.  *     TreeNode() {}
  8.  *     TreeNode(int val) { this.val = val; }
  9.  *     TreeNode(int val, TreeNode left, TreeNode right) {
  10.  *         this.val = val;
  11.  *         this.left = left;
  12.  *         this.right = right;
  13.  *     }
  14.  * }
  15.  */
  16. class Solution {
  17.     public List<Integer> largestValues(TreeNode root) {
  18.         HashMap<Integer,Integer> maxValues = largestValuesHelper(root,0);
  19.         if(maxValues==null)
  20.             return new LinkedList<Integer>();
  21.         LinkedList<Integer> out = new LinkedList<Integer>();
  22.         for(int i = 0; i<maxValues.size();i++){
  23.             out.add(maxValues.get(i));
  24.         }
  25.         return out;
  26.     }
  27.     public HashMap<Integer,Integer> largestValuesHelper(TreeNode node,int row){
  28.         HashMap<Integer, Integer> maxRight = new HashMap<Integer, Integer>(),
  29.                                   max=new HashMap<Integer,Integer>();
  30.         if(node==null){
  31.             return null;
  32.         }
  33.         if(node.left!=null){
  34.             max=largestValuesHelper(node.left,row+1);
  35.         }
  36.         if(node.right!=null){
  37.             maxRight=largestValuesHelper(node.right,row+1);
  38.         }
  39.         max.put(row,node.val);
  40.         for(Integer level:maxRight.keySet()){
  41.             max.put(level,Math.max(maxRight.get(level),max.getOrDefault(level,Integer.MIN_VALUE)));
  42.         }
  43.         return max;
  44.     }
  45. }
Add Comment
Please, Sign In to add comment