101. 对称二叉树
给你一个二叉树的根节点 root
, 检查它是否轴对称。
示例 1:
输入:root = [1,2,2,3,4,4,3] 输出:true
示例 2:
输入:root = [1,2,2,null,3,null,3] 输出:false 提示:
- 树中节点数目在范围
[1, 1000]
内 -100 <= Node.val <= 100
算法思路:利用递归遍历分别判断左右子树对称节点利用判断两树相同的思想。
判断两树对称:这里我们输入的分别是左右子树的根节点,然后一个从左节点开始遍历,另外一个从右节点开始遍历即可
代码实现:
bool ismirrortree(struct TreeNode* p,struct TreeNode* q){if(p == NULL && q == NULL){return true;}if(!p || !q || p->val != q->val){return false;}return ismirrortree(p->left,q->right) && ismirrortree(p->right,q->left); }bool isSymmetric(struct TreeNode* root) {if(!root){return true;}return ismirrortree(root->left,root->right); }
这道题利用前面我们做过的题目的思想,有时候它只给了一个接口,但并不意味着你不可以在该接口中调用其他接口。
好了,本期的内容就分享到这里了,谢谢大家的点赞和收藏!