Leetcode101.对称二叉树

本专栏内容为:leetcode刷题专栏,记录了leetcode热门题目以及重难点题目的详细记录
💓博主csdn个人主页:小小unicorn

⏩专栏分类:Leetcode

🚚代码仓库:小小unicorn的代码仓库🚚

🌹🌹🌹关注我带你学习编程知识

对称二叉树

题目描述

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

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

解题思路:

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

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

代码解决:

c 复制代码
//判断镜像位置是否相等
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);//判断镜像位置是否相等
}

结果与总结:

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

相关推荐
浮灯Foden3 小时前
算法-每日一题(DAY13)两数之和
开发语言·数据结构·c++·算法·leetcode·面试·散列表
山顶风景独好7 小时前
【Leetcode】随笔
数据结构·算法·leetcode
科大饭桶8 小时前
C++入门自学Day11-- String, Vector, List 复习
c语言·开发语言·数据结构·c++·容器
Cx330❀10 小时前
【数据结构初阶】--排序(四):归并排序
c语言·开发语言·数据结构·算法·排序算法
艾莉丝努力练剑11 小时前
【C语言16天强化训练】从基础入门到进阶:Day 1
c语言·开发语言·数据结构·学习
番薯大佬11 小时前
编程算法实例-冒泡排序
数据结构·算法·排序算法
ankleless11 小时前
数据结构(03)——线性表(顺序存储和链式存储)
数据结构·考研·链表·顺序表·线性表
KarrySmile11 小时前
Day8--滑动窗口与双指针--1004. 最大连续1的个数 III,1658. 将 x 减到 0 的最小操作数,3641. 最长半重复子数组
数据结构·算法·双指针·滑动窗口·不定长滑动窗口·最大连续1的个数·最长子数组
崎岖Qiu15 小时前
leetcode100.相同的树(递归练习题)
算法·leetcode·二叉树·力扣·递归
大阳1231 天前
线程(基本概念和相关命令)
开发语言·数据结构·经验分享·算法·线程·学习经验