二叉搜索树中查找与目标数字最接近的节点
2012-07-04 21:26
507 查看
struct Node{ int value; Node* left; Node* right; }; Node* LeftPrev = NULL; Node* RightPrev = NULL; Node* GetNearestNode(Node* root, int k) { if(NULL == root) { return NULL; } if(k == root->value) { return root; } if(k < root->value) { LeftPrev = root; if(NULL != root->left) { return GetNearestNode(root->left , k); } else { if(RightPrev != NULL && k - RightPrev->value < root->value - k) { return RightPrev; } else { return root; } } } else { RightPrev = root; if(NULL != root->right) { return GetNearestNode(root->right , k); } else { if(LeftPrev != NULL && k - root->value < LeftPrev->value - k) { return root; } else { return LeftPrev; } } } }
相关文章推荐
- 二叉搜索树查找与目标数字最接近的节点。
- 从一个数组中查找和目标数最接近的或者相等的数
- 数据结构与算法分析(Java语言描述)(16)—— 二叉搜索树基础、节点插入、查找
- java折半查找法 查找数组中与目标数最接近的数
- 查找二叉搜索树中小于某个节点的最大值
- 二叉查找树,删除,节点开始查找数字
- 二分法之查找最接近目标数的数
- [leetcode 285] Inorder Successor in BST---查找二叉搜索树中某个节点在中序遍历中的后续节点
- 二叉搜索树的节点插入,查找。
- 二分法查找已排序数列中目标数字的位置
- 查找和目标数最接近的或者相等的数
- 3Sum Closest 3个数字的和等于或者最接近与目标数
- LeetCode 270. Closest Binary Search Tree Value(二叉搜索树最接近值查找)
- 二叉搜索树的相关操作:插入节点,删除节点,排序,查找,最大值,最小值,前序,中序,后序遍历(主要用到递归的方法)
- 第十二题:查找链表中倒数第k个节点
- 二叉搜索树Java实现(查找、插入、删除、遍历)
- 给定一个整数数组,两个数字的返回索引将它们加到一个特定的目标中。 您可以假设每个输入都只有一个解决方案,并且您可能不会两次使用相同的元素。
- 查找组成一个偶数最接近的两个素数
- 微软面试100题之14题:输入一个已经按升序排序过的数组和一个数字, 在数组中查找两个数,使得它们的和正好是输入的那个数字。
- 单向链表(五) 按值查找节点,返回一个链表