101. Symmetric Tree. 递归判断镜像二叉树
Posted xgbt
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了101. Symmetric Tree. 递归判断镜像二叉树相关的知识,希望对你有一定的参考价值。
Given a binary tree, check whether it is a mirror of itself (ie, symmetric around its center).
For example, this binary tree [1,2,2,3,4,4,3] is symmetric:
But the following [1,2,2,null,3,null,3] is not:
来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/symmetric-tree
1.思路
递归求解
求一棵树是否为镜像叔 转化为 求两棵树是否镜像
对两棵树而言,考虑三种情况
(1)两颗都为空,则为镜像
(2)两颗树中有一个为空且另一个非空,则不为镜像
(3)若两颗树都不为空,则考虑 若树1左子树=树2右子树 且 树1右子树=树2左子树 ,则为镜像。
class Solution {
public:
bool check(TreeNode* q,TreeNode* p){
if ( !q && !p) return true;
if ( !q || !p) return false;
return p->val == q->val && check(q->left,p->right) && check(q->right,p->left);
}
bool isSymmetric(TreeNode* root) {
return check( root, root);
}
};
以上是关于101. Symmetric Tree. 递归判断镜像二叉树的主要内容,如果未能解决你的问题,请参考以下文章
[Leetcode 101]判断对称树 Symmetric Tree
LeetCode 101. 对称二叉树(Symmetric Tree)