对称二叉树
2024年8月4日约 237 字小于 1 分钟
对称二叉树
题意
给你一个二叉树的根节点 root
, 检查它是否轴对称。
思路
递归结束条件:
- 都为空指针返回
true
- 只有一个为空返回
false
递归过程:
- 判断两个指针当前节点值是否相等
- 判断
A
的右子树与B
的左子树是否对称 - 判断
A
的左子树与B
的右子树是否对称
短路原则:
在递归判断过程中存在短路现象,也就是做 与
操作时,如果前面的值返回 false
则后面的不再进行计算
代码
class Solution {
boolean isSameTree(TreeNode p, TreeNode q) {
if (p == null || q == null)
return p == q;
// 左对右,右对左,判断对应的两个节点是否相等
return p.val == q.val && isSameTree(p.left, q.right) && isSameTree(p.right, q.left);
}
public boolean isSymmetric(TreeNode root) {
return isSameTree(root.left, root.right);
}
}