首页 > 其他分享 >查找值为x的结点

查找值为x的结点

时间:2023-08-06 22:01:00浏览次数:25  
标签:结点 return 值为 BTNode 查找 NULL root

查找值为x的结点

在一棵二叉树中查找值为X的结点,并返回这个结点地址。

如果二叉树是空树,直接返回NULL;

如果不为空,先判断根结点的值是不是我们要找的结点值,如果是直接返回根结点地址,如果不是,那就判断左右子树能不能找到;

如果左右子树都找不到,说明不存在要找的结点,返回NULL。

//二叉树查找值为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;
}

标签:结点,return,值为,BTNode,查找,NULL,root
From: https://blog.51cto.com/u_15562309/6987178

相关文章

  • 性能提升-空间二叉查找树
    性能提升-空间二叉查找树[email protected]. OpenCASCADEprovidesNCollection_UBTreetoachievehighperformancesearchoverlappedboxes.Thealgorithmofunbalancedbinarytreeofoverlappedboundingboxes.Oncethetreeofboxes ofgeometricobjects......
  • 查找(4)
    多路查找树多路查找树(MultwaySearchTree)是一种高级的树形数据结构,它允许每个节点有多个子节点(通常大于等于2)。多路查找树的每个节点可以存储多个关键字和对应的值。分类2-3树(2-3Tree):2-3树是一种最简单的多路查找树,每个节点可以存储1个或2个关键字,并有2个或3个子节点。2-3树......
  • 输入字符串查找字符串中都有什么组成 java代码如下
    importjava.util.Scanner;publicclassDemo02{publicstaticvoidmain(String[]args){System.out.println("请输入一个字符串:");Stringcc=newScanner(System.in).nextLine();char[]arr=cc.toCharArray();intcoun......
  • 如何用C#在PC上查找连接蓝牙设备并实现数据传输
    在PC端用.NET开发一个蓝牙下载的程序。实现在PC上查找周围的蓝牙设备(主要是手机),并将PC上的文件通过蓝牙传输到手机上。目前我采用的是OpenNETCF.Net.Bluetooth,能够正常发现周围的蓝牙设备,手机也能够正常进行蓝牙连接并接收文件。#regionOBEXOpenStreampublicboolOBEXOpenStre......
  • 线上查找CPU过高的原因
    第一步:top命令查看占用CPU的pid  psaux|greppid确认一下进程的详细情况  也可以使用jps显示java的pid第二步:top-H-ppid 查找进程下面的线程id,显示线程的cpu的占用时间,占用比例,发现有很多个线程都会CPU占用很高,只能每个排查。第三步:jstack查看线程信息,命令:jst......
  • Linux文件管理知识:查找文件
    前几篇文章一一介绍了LINUX进程管理控制命令及网络层面的知识体系,综所周知,一个linux系统是由很多文件组成的,那么既然有那么多文件,那我们该如何管理这些文件呢?Linux中的所有数据都是以文件形式存在的,那么所有文件分别被归类到不同的文件系统中。而文件系统则是一种树型结构,通俗的......
  • Linux文件管理知识:查找文件
    前几篇文章一一介绍了LINUX进程管理控制命令及网络层面的知识体系,综所周知,一个linux系统是由很多文件组成的,那么既然有那么多文件,那我们该如何管理这些文件呢?Linux中的所有数据都是以文件形式存在的,那么所有文件分别被归类到不同的文件系统中。而文件系统则是一种树型结构,通俗的......
  • 剑指 Offer 04. 二维数组中的查找(中等)
    题目:classSolution{public:boolfindNumberIn2DArray(vector<vector<int>>&matrix,inttarget){inti=matrix.size()-1,j=0;//以矩阵最左下角作为标记符号while(i>=0&&j<matrix[0].size()){i......
  • 二分查找模板
    二分法模板链接:•循环条件到底哪一个? •start<=end •start<end •start+1<end•指针变换到底哪一个 •start=mid •start=mid+1 •start=mid-1弄不好就死循环,弄不好边界就失误例:nums=[1,1],target=1使用start<end会出现死循环......
  • Linux文件管理知识查找文件
    Linux文件管理知识:查找文件前几篇文章一一介绍了LINUX进程管理控制命令及网络层面的知识体系,综所周知,一个linux系统是由很多文件组成的,那么既然有那么多文件,那我们该如何管理这些文件呢?Linux中的所有数据都是以文件形式存在的,那么所有文件分别被归类到不同的文件系统中。而文件系......