Symmetric Tree?
Check if given tree is symmetrical
Solution: Bottom up recursion
Base Case:
Both null return true
One null return false
Left key != right key return false
Implementation:
public boolean isSymmetricHelper(TreeNode left, TreeNode right){
if (left == null && right == null) return true;
else if (left == null || right == null) return false;
else if(left.key != right.key) return false;
return isSymmetricHelper(left.left, right.right) && isSymmetricHelper(left.right, right.left);
}
Time Comp: O(N) Every node visited
Space Comp: O(Height) max stack size
Last updated
Was this helpful?