ARTICLE DETAIL

建站实战干货

来自一线的建站与推广经验沉淀,每一条都经过真实交付验证。

leetcode 101.对称二叉树

2026/9/11 20:30:02 拓冰建站 浏览量
leetcode 101.对称二叉树

 学习这部分还是要多画图,多思考


101.对称二叉树

题目

给你一个二叉树的根节点 root , 检查它是否轴对称。

题目链接

力扣(LeetCode)官网 - 全球极客挚爱的技术成长平台

文字 和 画图 分析

   明确结束条件和继续递归条件

判断是否对称,我们一定是拿左子树和右子树进行对比,(这里的根节点反而没有那么重要)

如下图,这是遍历思路

图1:

图2:

从图我们可以知道:

结束条件有以下几种情况:

  1. 当左子树的值不等于右子树的值,返回 false
  2. 当左子树和右子树都为空 ,返回 true (如图一3,4号)
  3. 当左子树和右子树只有一个为空 ,返回 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) ;
}