首页 > 其他分享 >数据结构——二叉树相关题目

数据结构——二叉树相关题目

时间:2024-07-07 11:26:57浏览次数:14  
标签:NULL return 递归 BTNode 二叉树 题目 数据结构 root

1.寻找二叉树中数值为x的节点

//寻找二叉树中数值为x的节点
BTNode* TreeFind(BTNode* root, BTDataType x)//传过来二叉树的地址和根的地址,以及需要查找的数据
{
	if (root == Null)
	{
		return Null;
	}//首先需要先判断这个树是否为空,如果为空直接返回空
	if (root->data == x)
	{
		return root;
	}//如果根找到了这个数据就返回这个数据
	BTNode* ret1 = TreeFind(root->left, x)
		if (ret1)
			return ret1;//先查找数据根的左边,将找到的数据存起来
	BTNode* ret2 = TreeFind(root->right, x)
		if (ret2)
			return ret2;
	return Null;//如果两个都没有找到就需要返回空
}



2.比较两个二叉树是否相同

每个节点都当作根来比较。

运用递归(后续如果递归不便于递归则直接转化为非递归就行了)

bool isSameTree(struct TreeNode* p, struct TreeNode* q)
{
	if (p == NULL && q == NULL)
		return true;
	//如果两个都为空则是相等的
	if (p == NULL || q == NULL)
		return false;//若一个为空,一个不为空
	if (p->val != q->val)//值不同
	{
		return false;

	}
	return isSameTree(p->left, q->left) && isSameTree(p->right, q->right);
}//反复递归

下一章:层序遍历

标签:NULL,return,递归,BTNode,二叉树,题目,数据结构,root
From: https://blog.csdn.net/XSTIT/article/details/140234835

相关文章

  • [数据结构] 基于交换的排序 冒泡排序&&快速排序
    标题:[数据结构]基于交换的排序冒泡排序&&快速排序@水墨不写bug(图片来源于网络) 目录(一)冒泡排序优化后实现:(二)快速排序I、实现方法: (1)hoare法hoare法实现快排: (2)挖坑法挖坑法实现:(3)双指针法 双指针法实现:  II、快速排序复杂度分析:比较完备的快速排序实现如......
  • 数据结构题目:模式匹配的BF算法
    1、实验目的键盘输入目标串(主串)s、模式串(子串)t,编写程序,实现顺序串的BF模式匹配算法。2、实验具体要求匹配成功,输出位序,匹配不成功,显示相应提示信息。例如:s=“aababcdcccc”,t=“bcd”。3、实验设计思路(编程语言、模块划分及函数功能描述等)模块划分及函数功能描述:(1)主程序......
  • 计算机网络面试常见题目(一)
    计算机网络面试中常见的问题涉及多个层面,包括网络协议、网络体系结构、网络安全、数据传输等。以下是一些常见题目的详解:1.OSI七层模型是什么?每层的功能是什么?OSI七层模型是国际标准化组织(ISO)制定的一个用于计算机或通信系统间互联的标准体系,它从上到下分别是:应用层:为应用......
  • leetcode 257. 二叉树的所有路径
    给你一个二叉树的根节点 root ,按 任意顺序 ,返回所有从根节点到叶子节点的路径。叶子节点 是指没有子节点的节点。 示例1:输入:root=[1,2,3,null,5]输出:["1->2->5","1->3"]示例2:输入:root=[1]输出:["1"]java解题思路及代码实现递归法packagecom.java......
  • leetcode 102. 二叉树的层序遍历
    给你二叉树的根节点 root ,返回其节点值的 层序遍历 。(即逐层地,从左到右访问所有节点)。示例1:输入:root=[3,9,20,null,null,15,7]输出:[[3],[9,20],[15,7]]示例2:输入:root=[1]输出:[[1]]示例3:输入:root=[]输出:[]提示:树中节点数目在范围 [0,2000] ......
  • 二叉树的顺序存储
    目录顺序存储:简介:节点的位置关系:优缺点:优点:缺点:二叉树顺序存储的模拟实现:向上调整算法:向下调整算法:二叉树的初始化:直接初始化:建堆初始化:二叉树的头删:二叉树的尾插:二叉树的取顶端元素:二叉树的判空:二叉树的销毁:完整代码:顺序存储:简介:顺序结构存储就是使......
  • 题目集7~8
    由于个人原因,最后两次题目集未提交,对自己的放纵感到愧疚,后期的补练我也会抽出时间完成这两道题经过分析,题目集7,是在前面的基础上加上了一个新概念:互斥开关,以及模拟一种受控窗帘,在我的想法,互斥开关便可当作两个普通开关去完成电路,窗帘则是新增一个用电器。题目集8,有以下新增内容......
  • 数据结构——(双)链表
    文章目录1. 定义2. 双链表和单链表的区别3.代码示例3.1双链表节点和结构定义3.2初始化双链表3.3 返回双链表的长度3.4 在指定位置插入元素3.5 在末尾插入元素3.6 删除指定位置的元素并返回被删除的元素3.7 删除末尾元素3.8获取指定位置的元素3.9修改指......
  • 数据结构——单向循环链表
    文章目录1.概念2. 区别2.1结构区别2.2访问方式区别2.3优缺点对比3.流程4. 基本操作5.代码示例1.概念单向循环链表是一种特殊的单链表,其中最后一个节点的后继指针指向头节点,形成一个环。单向循环链表适合用于需要循环访问数据的场景,如约瑟夫环问题。节点......
  • 数据结构小学期第六天
    今天完全实现了九宫格拼图游戏,具备一键通关功能按下W键,查看原图功能按住A键不松,移动图片按上下左右键,如果你自己想要实现这个功能,需要自己的图片,图片格式要求。每个小图片是105*105,完整图片是315*315.有人想要做一下,可以试一试。代码如下启动类1importcom.itheima.ui.GameJ......