101 对称二叉树
程序员文章站
2024-01-11 16:33:52
...
这道题的思路与上一道题很相像,只不过第一道题中 是两棵树比较,这道题是一棵树比较,而且第一道题要求的是左右结点相等,而第二道题要求的是左右子树成镜像关系。
public class Solution {
public bool IsSymmetric(TreeNode root) {
if (root == null)
return true;
return IsEqual(root.left, root.right);
}
private bool IsEqual(TreeNode p, TreeNode q)
{
if (p == null && q == null)
return true;
if (p == null || q == null)
//if ((p != null && q == null) || (p == null && q != null))
return false;
if (p.val != q.val)
return false;
if (IsEqual(p.left, q.right))
return IsEqual(p.right, q.left);
return false;
// 后三行代码同样可以优化使之更简洁
// return IsEqual(p.left, q.right) && IsEqual(p.right, q.left);
}
}