leetcode 101.对称二叉树
2023-12-13 03:39:15
?学习这部分还是要多画图,多思考
101.对称二叉树
题目
给你一个二叉树的根节点 root , 检查它是否轴对称。
题目链接
文字 和 画图 分析
? ?明确结束条件和继续递归条件
判断是否对称,我们一定是拿左子树和右子树进行对比,(这里的根节点反而没有那么重要)
如下图,这是遍历思路
图1:
图2:
从图我们可以知道:
结束条件有以下几种情况:
- 当左子树的值不等于右子树的值,返回 false
- 当左子树和右子树都为空 ,返回 true (如图一3,4号)
- 当左子树和右子树只有一个为空 ,返回 false (如图二2号)
(结束条件有先后顺序,为了防止是空树现象,一定要先验证这个)
从图中可以明白,左子树和右子树一定要同时进行比较,用递归的话参数一定是两个(就是左子树和右子树的节点)
(这里leetcode给的参数只有一个,所以我们得创建一个函数,用它帮我们返回真假)
代码
bool _isSymmetric(struct TreeNode* Left,struct TreeNode* Right)
{
if(Left == NULL && Right == NULL)
{
return true;
}
if(Left == NULL || Right == NULL)
{
return false;
}
if(Left->val != Right->val)
{
return false;
}
return _isSymmetric(Left->left,Right->right)
&& _isSymmetric(Left->right,Right->left);
}
bool isSymmetric(struct TreeNode* root)
{
return _isSymmetric(root->left,root->right) ;
}
文章来源:https://blog.csdn.net/2301_79789645/article/details/134960412
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!