Leetcode-hot-100-191.对称二叉树
目录
Leetcode hot 100 191.对称二叉树
1.题目
给你一个二叉树的根节点
root
, 检查它是否轴对称。
示例 1:
输入:root = [1,2,2,3,4,4,3]
输出:true
示例 2:
输入:root = [1,2,2,null,3,null,3]
输出:false
2.代码及解析
class Solution {
bool issametree(TreeNode* p,TreeNode* q){
if(p==nullptr||q==nullptr){
return p==q;
}
return p->val==q->val &&issametree(p->left,q->right)&& issametree(p->right,q->left);
}
public:
bool isSymmetric(TreeNode* root) {
return issametree(root->left,root->right);
}
};
代码逻辑
递归终止条件 :
- 如果两个节点都为空,返回
true
。- 如果其中一个节点为空,另一个不为空,返回
false
。递归过程 :
- 比较当前两个节点的值。
- 递归比较左子树的左节点和右子树的右节点。
- 递归比较左子树的右节点和右子树的左节点。
示例
假设有以下二叉树:
复制
1 / \ 2 2 / \ / \ 3 4 4 3
- 根节点的左子树和右子树都是
2
,它们的值相等。- 左子树的左节点
3
和右子树的右节点3
相等。- 左子树的右节点
4
和右子树的左节点4
相等。- 因此,这棵树是对称的。