LeetCode:对称二叉树
一、题目描述:
给你一个二叉树的根节点 root , 检查它是否轴对称。

二、题目分析
题目:对称二叉树
1、p 指针和 q 指针一开始都指向这棵树的根
2、随后 p 右移时,q 左移,p 左移时,q 右移
3、每次检查当前 p 和 q 节点的值是否相等,如果相等再判断左右子树是否对称。
即 p.val = q.val; p.left = q.right; p.right = q.left;
/**
* 题目:对称二叉树
* 1、p 指针和 q 指针一开始都指向这棵树的根
* 2、随后 p 右移时,q 左移,p 左移时,q 右移
* 3、每次检查当前 p 和 q 节点的值是否相等,如果相等再判断左右子树是否对称。
* 即 p.val = q.val; p.left = q.right; p.right = q.left;
*/
public class Deal2 {
public boolean isSymmetric(TreeNode root) {
return check(root, root);
}
public boolean check(TreeNode p, TreeNode q) {
//注意:此处是 && 时 , 为true
if (p == null && q == null) {
return true;
}
//注意:此处是 || 时 , 为false
if (p == null || q == null) {
return false;
}
return p.val == q.val && check(p.left, q.right) && check(p.right, q.left);
}
}



![[架构之路-220]:与机器打交道VS与人打交道,计算机系统VS人体系统,计算机网络VS人类社会:架构、通信、语言、网络、智能、情感、生命](https://img-blog.csdnimg.cn/7c93f42992a44b92a71203ae694ac953.png)















