diff --git a/DSA SOLUTIONS (TILL TREE & BASIC GRAPH CONCEPTS)/DP/Longest ZigZag Path in a Binary Tree.java b/DSA SOLUTIONS (TILL TREE & BASIC GRAPH CONCEPTS)/DP/Longest ZigZag Path in a Binary Tree.java new file mode 100644 index 0000000..eaf4e5f --- /dev/null +++ b/DSA SOLUTIONS (TILL TREE & BASIC GRAPH CONCEPTS)/DP/Longest ZigZag Path in a Binary Tree.java @@ -0,0 +1,21 @@ +class Solution { + public int maxLength=0; + public void solve(TreeNode root,int dir,int currLength){ + if(root==null) return; + maxLength=Math.max(maxLength,currLength); + if(dir==1){ + solve(root.left,0,currLength+1); + solve(root.right,1,1); + } + else{ + solve(root.right,1,currLength+1); + solve(root.left,0,1); + } + } + + public int longestZigZag(TreeNode root) { + solve(root,0,0); + solve(root,1,0); + return maxLength; + } +} \ No newline at end of file