Symmetric Tree?

Check if given tree is symmetrical

Solution: Bottom up recursion

Base Case:

  1. Both null return true

  2. One null return false

  3. 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?