I was wondering why the first dfs returns false and the second returns true. From my understanding || operator returns true if one of the expressions is true. thanks, guys!
var isSymmetric = function(root) {
if (!root) return true;
return dfs(root.left, root.right);
};
const dfs = (left, right) => {
if (left.left || right.right) {
return left.left === right.right;
}
if (left.val !== right.val) return false;
return dfs(left.left, right.right) && dfs(left.right, right.left)
}
const dfs = (left, right) => {
if (!left.left || !right.right) {
return left.left === right.right;
}
if (left.val !== right.val) return false;
return dfs(left.left, right.right) && dfs(left.right, right.left)
}