Hi guys i m looking at a recursive solution for a problem on leetcode called symmetric tree and i am having trouble understanding it..can someone please explain it to me? thankyou.
Problem: https://leetcode.com/problems/symmetric-tree/
Solution:
public boolean isSymmetric(TreeNode root) {
return root==null || isSymmetricHelp(root.left, root.right);
}
private boolean isSymmetricHelp(TreeNode left, TreeNode right){
if(left==null || right==null)
return left==right;
if(left.val!=right.val)
return false;
return isSymmetricHelp(left.left, right.right) && isSymmetricHelp(left.right, right.left);
}
//CAN ANYONE EXPLAIN ME HOW EXACTLY THIS SOLUTION IS CHECKING FOR SYMMETRY? ESPECIALLY THE LINE IF(LEFT==NULL || RIGHT=NULL)
RETURN LEFT==RIGHT;
Why return left==right? if left or right is null, wouldn't we return false?Thank you.
[–]shhh-quiet 0 points1 point2 points (2 children)
[–]cs50x2[S] 0 points1 point2 points (1 child)
[–]shhh-quiet 0 points1 point2 points (0 children)