Advertisement
1988coder

549. Binary Tree Longest Consecutive Sequence II

Dec 2nd, 2018
115
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 1.52 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(int x) { val = x; }
  8.  * }
  9.  */
  10. /*
  11. Bottom Up DFS Approach
  12.  
  13. Time Complexity: O(N)
  14. Space Complexity: O(H)
  15.  
  16. N = Number of nodes in the binary tree.
  17. H = Height of the binary Tree. This will be equal to N if the tree is skewed.
  18. */
  19. class Solution {
  20.     public int longestConsecutive(TreeNode root) {
  21.         if (root == null) {
  22.             return 0;
  23.         }
  24.         int[] maxLength = new int[1];
  25.         dfsHelper(root, maxLength);
  26.         return maxLength[0];
  27.     }
  28.    
  29.     private int[] dfsHelper(TreeNode node, int[] maxLength) {
  30.         if (node == null) {
  31.             return new int[] {0,0};
  32.         }
  33.         int inc = 1;
  34.         int dec = 1;
  35.         if (node.left != null) {
  36.             int[] left = dfsHelper(node.left, maxLength);
  37.             if (node.left.val == node.val+1) {
  38.                 inc = left[0] + 1;
  39.             } else if (node.left.val == node.val-1) {
  40.                 dec = left[1] + 1;
  41.             }
  42.         }
  43.         if (node.right != null) {
  44.             int[] right = dfsHelper(node.right, maxLength);
  45.             if (node.right.val == node.val+1) {
  46.                 inc = Math.max(inc, right[0] + 1);
  47.             } else if (node.right.val == node.val-1) {
  48.                 dec = Math.max(dec, right[1] + 1);
  49.             }
  50.         }
  51.         maxLength[0] = Math.max(maxLength[0], inc + dec - 1);
  52.         return new int[] {inc, dec};
  53.     }
  54. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement