二叉搜索树查找与目标数字最接近的节点。
2015-04-22 09:34
260 查看
typedef struct TreeNode{ int value; struct TreeNode * left; struct TreeNode * right; }Node; 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; } } } }
相关文章推荐
- 二叉搜索树中查找与目标数字最接近的节点
- [leetcode 285] Inorder Successor in BST---查找二叉搜索树中某个节点在中序遍历中的后续节点
- 二叉搜索树的节点插入,查找。
- 二分法查找已排序数列中目标数字的位置
- 查找和目标数最接近的或者相等的数
- LeetCode 270. Closest Binary Search Tree Value(二叉搜索树最接近值查找)
- 3Sum Closest 3个数字的和等于或者最接近与目标数
- 二叉搜索树的相关操作:插入节点,删除节点,排序,查找,最大值,最小值,前序,中序,后序遍历(主要用到递归的方法)
- 从一个数组中查找和目标数最接近的或者相等的数
- 数据结构与算法分析(Java语言描述)(16)—— 二叉搜索树基础、节点插入、查找
- java折半查找法 查找数组中与目标数最接近的数
- 二叉查找树,删除,节点开始查找数字
- 查找二叉搜索树中小于某个节点的最大值
- 二分法之查找最接近目标数的数
- 在排序数组中查找和为给定值的两个数字--总结
- jquery节点查找
- 在二叉树中查找两个节点的最近的公共祖先节点(有回溯指针)(NCA--nearest common ancestor)
- OJ日常 | 二分查找——旋转数组的最小数字
- Python 字符串查找数字
- 算法导论第十二章-二叉搜索树的插入(递归与非递归),中序输出(递归,用栈,既不用栈也不递归)以及节点的删除