社区
C++ 语言
帖子详情
二叉搜索树求最小结点的问题
tobeistodo1
2004-10-09 04:07:30
我想利用中序遍历直接走到第一个要输出的结点,可以走到,但返回指针时,由于是递归,它层层返回,最中返回的是根结点指针,这不是我需要的,如何才能返回最内层的结点?代码如下:
template <class Type> BstNode<Type> * BST<Type>::Min(BstNode<Type> *ptr) const
{
while (ptr->leftChild != NULL)
{
Min(ptr->leftChild);
}
return ptr;
}
...全文
169
9
打赏
收藏
二叉搜索树求最小结点的问题
我想利用中序遍历直接走到第一个要输出的结点,可以走到,但返回指针时,由于是递归,它层层返回,最中返回的是根结点指针,这不是我需要的,如何才能返回最内层的结点?代码如下: template BstNode * BST::Min(BstNode *ptr) const { while (ptr->leftChild != NULL) { Min(ptr->leftChild); } return ptr; }
复制链接
扫一扫
分享
转发到动态
举报
AI
作业
写回复
配置赞助广告
用AI写文章
9 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
nlstone
2004-10-10
打赏
举报
回复
踏雪而歌和短歌的做法应该是正确的...你仔细调调看...
24607660
2004-10-10
打赏
举报
回复
这样应该可以了吧?
template <class Type> BstNode<Type> * BST<Type>::Min(BstNode<Type> *ptr) const
{
if (ptr->leftChild != NULL)
return Min(ptr->leftChild);
else
{
BstNode<Type> *pTemp = ptr->leftChild;
return pTemp;
}
}
tobeistodo1
2004-10-09
打赏
举报
回复
还是不行!
24607660
2004-10-09
打赏
举报
回复
这个函数似乎不能直接返回BstNode<Type> * 指针,建议用输出参数
24607660
2004-10-09
打赏
举报
回复
template <class Type> BstNode<Type> * BST<Type>::Min(BstNode<Type> *ptr) const
{
if (ptr->leftChild != NULL)
return Min(ptr->leftChild);
else
ptr = ptr->leftChild;
return;
}
ywchen2000
2004-10-09
打赏
举报
回复
mark
tobeistodo1
2004-10-09
打赏
举报
回复
还是不行,用debug走还是一样的。
短歌如风
2004-10-09
打赏
举报
回复
template <class Type> BstNode<Type> * BST<Type>::Min(BstNode<Type> *ptr) const
{
if (ptr->leftChild != NULL)
return Min(ptr->leftChild);
else
return ptr;
}
yegaofei
2004-10-09
打赏
举报
回复
template <class Type> BstNode<Type> * BST<Type>::Min(BstNode<Type> *ptr) const
{
if (ptr->leftChild != NULL)
{
return Min(ptr->leftChild);
}
else return ptr;
}
这样如何?
领扣LintCode算法
问题
答案-1746.
二叉搜索树
结点
最小
距离
领扣LintCode算法
问题
答案-1746.
二叉搜索树
结点
最小
距离 目录1746.
二叉搜索树
结点
最小
距离描述样例 1:样例 2:题解鸣谢 1746.
二叉搜索树
结点
最小
距离 描述 给定一个
二叉搜索树
的根
结点
root, 返回树中任意两节点的差的
最小
值。 二叉树的大小范围在 2 到 100。 二叉树总是有效的,每个节点的值都是整数,且不重复。 样例 1: 输入: root = {4,2,6,1,3} 输出: 1 解释: 注意,root是树
结点
对象(TreeNode object),而不是数组。 .
783.
二叉搜索树
结点
最小
距离
给定一个
二叉搜索树
的根
结点
root, 返回树中任意两节点的差的
最小
值。 示例: 输入: root = [4,2,6,1,3,null,null] 输出: 1 解释: 注意,root是树
结点
对象(TreeNode object),而不是数组。 给定的树 [4,2,6,1,3,null,null] 可表示为下图: 4 / \ 2 ...
Leetcode 783.
二叉搜索树
结点
最小
距离(Minimum Distance Between BST Nodes)
Leetcode 783.
二叉搜索树
结点
最小
距离 1 题目描述(Leetcode题目链接) 给定一个
二叉搜索树
的根
结点
root,返回树中任意两节点的差的
最小
值。 输入: root = [4,2,6,1,3,null,null] 输出: 1 解释: 注意,root是树
结点
对象(TreeNode object),而不是数组。 给定的树 [4,2,6,1,3,null,null] 可表示为下图:...
二叉搜索树
的
最小
绝对差[简单]
求
任意两个元素之差的绝对值的
最小
值,答案一定为相邻两个元素之差的
最小
值,本题要
求
二叉搜索树
任意两节点差的绝对值的
最小
值,而我们知道
二叉搜索树
有个性质为
二叉搜索树
。一棵二叉树是
二叉搜索树
的充要条件是它的中序遍历序列单调递增,因此可以通过判断一个树的中序遍历序列是否单调递增来验证该树是否为
二叉搜索树
。中序遍历
二叉搜索树
,第一个
结点
外的每个节点与其前一节点的差值,如果该值小于
最小
绝对差,就用它更新
最小
绝对差(初始可设为无穷)。
二叉搜索树
的中序遍历序列为递增序列,因此可中序遍历
二叉搜索树
,返回第K个元素。
二叉搜索树
的
最小
绝对差
回到本题,本题要
求
二叉搜索树
任意两节点差的绝对值的
最小
值,而我们知道
二叉搜索树
有个性质为
二叉搜索树
中序遍历得到的值序列是递增有序的,因此我们只要得到中序遍历后的值序列即能用上文提及的方法来解决。的下标对(i,j)的元素之差一定大于下标对 (i,i+1)的元素之差,故不需要再被考虑。变量保存前驱节点的值,这样即能边遍历边更新答案,不再需要显式创建数组来保存,需要注意的是。
求
任意两个元素之差的绝对值的
最小
值,答案一定为相邻两个元素之差的
最小
值,即。的初始值需要设置成任意负数标记开头,下文代码中设置为-1。
C++ 语言
65,186
社区成员
250,526
社区内容
发帖
与我相关
我的任务
C++ 语言
C++ 语言相关问题讨论,技术干货分享,前沿动态等
复制链接
扫一扫
分享
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++
技术论坛(原bbs)
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
请不要发布与C++技术无关的贴子
请不要发布与技术无关的招聘、广告的帖子
请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下
试试用AI创作助手写篇文章吧
+ 用AI写文章