Leetcode101.对称二叉树

简介: Leetcode101.对称二叉树

题目描述

题目来源:Leetcode101.对称二叉树

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

解题思路:

要判断某二叉树是否是对称二叉树,则判断其根结点的左子树和右子树是否是镜像对称即可。

因为是镜像对称,所以左子树的遍历方式和右子树的遍历方式是不同的,准确来说,左子树和右子树的遍历是反方向进行的。

代码解决:

//判断镜像位置是否相等
bool travel(BTNode* left, BTNode* right)
{
  if (left == NULL&&right == NULL)//红蓝轨迹同时遍历到NULL,函数返回
    return true;
  if (left == NULL || right == NULL)//红蓝指针中,一个为NULL,另一个不为NULL,即镜像不相等
    return false;
  if (left->val != right->val)//红蓝指针指向的结点值不同,即镜像不相等
    return false;
  //子问题:左子树遍历顺序:先左后右,右子树遍历顺序:先右后左。若两次遍历均成功,则是对称二叉树
  return travel(left->left, right->right) && travel(left->right, right->left);
}
//对称二叉树
bool isSymmetric(BTNode* root)
{
  if (root == NULL)//空树是对称二叉树
    return true;
  return travel(root->left, root->right);//判断镜像位置是否相等
}

结果与总结:

通过所有示例,问题得到解决。

相关文章
|
1月前
|
Java C++ Python
leetcode-101:对称二叉树
leetcode-101:对称二叉树
31 0
|
1月前
LeetCode——101——对称二叉树
LeetCode——101——对称二叉树
48 12
|
1月前
|
机器学习/深度学习
【力扣】101. 对称二叉树
【力扣】101. 对称二叉树
LeetCode | 101. 对称二叉树
LeetCode | 101. 对称二叉树
|
1月前
力扣101.对称二叉树
力扣101.对称二叉树
32 0
|
1月前
leetcode:对称二叉树
leetcode:对称二叉树
剑指offer 27. 对称的二叉树
剑指offer 27. 对称的二叉树
53 0
|
算法
LeetCode每日1题--对称二叉树
LeetCode每日1题--对称二叉树
62 0
|
Java C++ Python
对称的二叉树(剑指offer 28)
请实现一个函数,用来判断一棵二叉树是不是对称的。如果一棵二叉树和它的镜像一样,那么它是对称的。
对称的二叉树(剑指offer 28)