Longest Univalue Path LeetCode solution in Java

1
/**
2
* Definition for a binary tree node. public class TreeNode { int val; TreeNode left; TreeNode
3
* right; TreeNode() {} TreeNode(int val) { this.val = val; } TreeNode(int val, TreeNode left,
4
* TreeNode right) { this.val = val; this.left = left; this.right = right; } }
5
*/
6
class Solution {
7
int maxLen = 0;
8

9
public int longestUnivaluePath(TreeNode root) {
10
lup(root);
11
return maxLen;
12
}
13

14
public int lup(TreeNode root) {
15
if (root == null) {
16
return 0;
17
}
18
int left = lup(root.left);
19
int right = lup(root.right);
20
int leftMax = 0;
21
int rightMax = 0;
22
if (root.left != null && root.val == root.left.val) {
23
leftMax = left + 1;
24
}
25
if (root.right != null && root.val == root.right.val) {
26
rightMax = right + 1;
27
}
28
maxLen = Math.max(maxLen, leftMax + rightMax);
29
return Math.max(leftMax, rightMax);
30
}
31
}

0

WPM •0 •0

100%

ACC •0 •0

0s

TIME •0