大佬真的强!
public boolean isSymmetric(TreeNode root) {
if (root == null)
return true;
//从两个子节点开始判断
return isSymmetricHelper(root.left, root.right);
}
public boolean isSymmetricHelper(TreeNode left, TreeNode right) {
//如果左右子节点都为空,说明当前节点是叶子节点,返回true
if (left == null && right == null)
return true;
//如果当前节点只有一个子节点或者有两个子节点,但两个子节点的值不相同,直接返回false
if (left == null || right == null || left.val != right.val)
return false;
//然后左子节点的左子节点和右子节点的右子节点比较,左子节点的右子节点和右子节点的左子节点比较
return isSymmetricHelper(left.left, right.right) && isSymmetricHelper(left.right, right.left);
}
作者:数据结构和算法
链接:https://leetcode-cn.com/leetbook/read/top-interview-questions-easy/xn7ihv/?discussion=QMfbGu
来源:力扣(LeetCode)
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。