给你一个二叉树的根节点 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
进阶:你可以运用递归和迭代两种方法解决这个问题吗?
通过次数667,650提交次数
来源:力扣(LeetCode)
链接:https://leetcode.cn/problems/symmetric-tree
著作权归领扣网络所有。
bool compare(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 compare(left->left,right->right) && compare(left->right,right->left);
}
bool isSymmetric(struct TreeNode* root)
{
if(root==NULL)
return true;
return compare(root->left,root->right);
}
商业转载请联系官方授权,非商业转载请注明出处。
前序遍历->根左右规则如是二叉树为空,则返回空操作,否则先访问根结点,然后前序遍历左子树,最后前序遍历右子树。
中序遍历->左根右规则如是二叉树为空,则返回空操作,然后中序遍历左子树,访问根结点,最后中序遍历右子树。
后续遍历->左右根规则如是二叉树为空,则返回空操作,然后后序遍历左子树,后序遍历右子树,最后访问根结点,