Longest ZigZag Path in a Binary Tree 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
static class Pair {
8
int left = -1;
9
int right = -1;
10
int maxLen = 0;
11
}
12

13
public int longestZigZag(TreeNode root) {
14
Pair ans = longestZigZag_(root);
15
return ans.maxLen;
16
}
17

18
public Pair longestZigZag_(TreeNode root) {
19
if (root == null) return new Pair();
20
Pair l = longestZigZag_(root.left);
21
Pair r = longestZigZag_(root.right);
22

23
Pair myAns = new Pair();
24
myAns.left = l.right + 1;
25
myAns.right = r.left + 1;
26
int max = Math.max(myAns.left, myAns.right);
27
myAns.maxLen = Math.max(max, Math.max(l.maxLen, r.maxLen));
28
return myAns;
29
}
30
}

0

WPM •0 •0

100%

ACC •0 •0

0s

TIME •0