当前位置: 首页 > news >正文

关于链式二叉树的几道OJ题目

今天笔者带领读者做几道链式二叉树OJ题目,希望读者和笔者一起思考!

1.965. 单值二叉树 - 力扣(LeetCode)

这道题思路不难想,首先知道单值二叉树的定义:所有结点的值都相同,传入的是第一个根节点root,然后考虑几种情况,如果是NULL,那么这是一颗空树,也 满足单值二叉树的要求,所以这种情况直接 返回true,然后考虑整个二叉树,二叉树有左子树,右子树,所以直接比较二叉树一个结点的左右孩子结点即可,如果不等,那就返回false,如果相等,那就继续往下比,下面展示一下笔者写的代码:

2.100. 相同的树 - 力扣(LeetCode)

其实这道题目思路不难想到,无非就是先说特殊情况,然后进行一些递归操作即可:

3.101. 对称二叉树 - 力扣(LeetCode)

还是老规矩,先判断为空,之后为了方便,我们封装一个辅助函数,然后返回的情况其实就很显然了:

4.144. 二叉树的前序遍历 - 力扣(LeetCode)

由于前序中序后序遍历并无太大 差别,故笔者着重详解一下前序遍历,中序后序留给读者自行练习。这道题首先需要先理解题意,其实意思就是让我们用一个数组存储这个二叉树按照前序遍历的顺序访问的结点,所以观察需要完成的函数,我们需要提供一个returnsize,这其实是由于leetcode的原因,传数组时必须把数组的大小也传进去,也叫输出型参数,综上所述,我们需要单独求出数组的大小,而这这个数组的求法显然需要用malloc函数,创建完数组之后就需要考虑进行前序遍历,下面先给读者看一下笔者的代码:

笔者首先求了一个TreeSize,这是因为后面申请内存的时候不会造成浪费,这里需要记住的是returnSize是一个 指针,需要解引用才能当作数组,然后一个很易错的点就是i,相信读者会有 一个问题,为什么i要传入一个指针呢?为什么不能直接传入i呢?其实这个问题在之前的文章中笔者提到过,递归实际上是栈帧问题,通俗理解就是每个副本都会有一个新的i,那些不用的副本中的i始终从1开始,这就会导致混乱,因此需要传入指针,可以理解为传入指针会让根本改变,因为地址找到的东西是固定的,相信到这读者都能理解笔者这么写的原因了。

5.94. 二叉树的中序遍历 - 力扣(LeetCode)

6.145. 二叉树的后序遍历 - 力扣(LeetCode)

7.572. 另一棵树的子树 - 力扣(LeetCode)

以笔者的习惯,还是先看题目给的函数,传入了两个指针。先判断第一种情况,二者是不是一棵树,如果是一棵树的话那么直接返回true即可,然后就是root为空结点的情况,空结点直接返回false即可,因为空树不可能有子树,然后就是很正常的递归操作了,和之前同理,即可,下面给读者看一下笔者的代码:

8.二叉树遍历_牛客题霸_牛客网

ok,这就是本文的最后一道题,这道题比较综合,不难理解,这道题的本质是先按照前序创一个二叉树,然后中序遍历,把遍历结果储存起来,其实这道题就是把之前讲过的东西结合在了一起,读者自行完成。

http://www.dtcms.com/a/347898.html

相关文章:

  • 【Java SE】抽象类与Object类
  • 什么是正态分布
  • Mysql InnoDB 底层架构设计、功能、原理、源码系列合集【五、InnoDB 高阶机制与实战调优】
  • Manus AI 与多语言手写识别技术文章大纲
  • 夜间跌倒漏报率↓78%!陌讯多模态算法在智慧养老院的精准监测方案
  • Python 地理空间分析:核心库与学习路线图
  • 【三维重建】第二章 Python及Pytorch基础
  • 关于说明锂电池充电芯片实际应用
  • Python Excel
  • C++项目实战——高性能内存池(四)
  • Nacos-11--Nacos热更新的原理
  • 循环中的阻塞风险与异步线程解法
  • 综合测验:配置主dns,dhcp,虚拟主机,nfs文件共享等
  • 操作系统知识
  • (一)算法(big O/)
  • claude-code+kimi实测
  • 当AI成了“历史笔迹翻译官”:Manus AI如何破解多语言手写文献的“密码锁”
  • Redis优缺点
  • leetcode80:删除有序数组中的重复项 II(快慢指针法)
  • 历史数据分析——半导体
  • 5.在云服务器上部署RocketMQ以及注意点
  • 双指针:三数之和
  • SQL注入1----(sql注入原理)
  • 深入理解 OPRF 技术:盲化伪随机函数的原理、对比与应用
  • UE 官方文档学习 C++TArray 移除操作
  • C++11: std::weak_ptr
  • 单片机的输出模式推挽和开漏如何选择呢?
  • leetcode算法刷题的第十六天
  • std::exchange详解
  • 智慧交通夜间逆光误检率↓81.4%!陌讯多模态融合算法在主干道监测的落地优化