当前位置 : 主页 > 编程语言 > c语言 >

数据结构-->二叉树_OJ_02

来源:互联网 收集:自由互联 发布时间:2023-10-08
各位老友!!欢迎来到本期博文!!今天,为大家讲解两道 二叉树(OJ) 1.对称二叉树 给定一个二叉树根结点 root, 检查是否轴对称 以下是情况分析 : 另外,不能忘记空结点的情况!

各位老友!!欢迎来到本期博文!!今天,为大家讲解两道 二叉树(OJ)

1.对称二叉树

给定一个二叉树根结点 root, 检查是否轴对称

以下是情况分析  :>

数据结构-->二叉树_OJ_02_数组

另外,不能忘记空结点的情况!!

那么代码如下 :>

typedef int BTDataType;

typedef struct BinaryTreeNode
{
	BTDataType data;
  struct BinaryTreeNode* left;
  struct BinaryTreeNode* right;
}BTNode;

bool _isSymmetric(BTNode* left, BTNode* right)
{
	if(left == NULL && right == NULL)
  {
  	return false;
  }
  
  if(left == NULL && right == NULL)
  {
  	return false;
  }
  
  if(left ->data != right ->data)
  {
  	return false;
  }
  
  return _isSymmetric(left ->left, right ->right) 
    	&& _isSymmetric(left ->right, right ->left);
}

bool isSymmetric(BTNode* root)
{
	if(root == NULL)
  {
  	return true;
  }
  
  _isSymmetric(root ->left, root ->right);
}

为了更好的观感体验,特此附上有色彩的代码图样 :>

数据结构-->二叉树_OJ_02_数组_02

以上较为难以理解的部分,如下 :>

数据结构-->二叉树_OJ_02_判断镜像二叉树_03

各位好友,上述“左边到左边”, “右边到右边”是啥意思?

上一篇:数据结构-->二叉树_OJ_03
下一篇:没有了
网友评论