LeetCode 270. 二叉搜索树中查找与目标数字最接近的节点

原创 2018年04月16日 14:08:54

思路:如果当前节点值小于目标值,则结果只可能是当前节点值或者右子树中的值;如果当前节点值大于目标值,则结果只可能是当前节点值或者左子树中的值。

struct TreeNode{
    int val;
    TreeNode *left;
    TreeNode *right;
    TreeNode(int x) : val(x), left(NULL), right(NULL){}
};

TreeNode* find_nearest_node(TreeNode *pRoot, int target){
    if(pRoot == NULL || pRoot->val == target)
        return pRoot;
    if(pRoot->val > target){
        if(!pRoot->left)
            return pRoot;
        else{
            TreeNode *left_nearest = find_nearest_node(pRoot->left, target);
            return abs(left_nearest->val - target) >= abs(pRoot->val - target) ? pRoot : left_nearest;
        }
    }
    else{
        if(!pRoot->right)
            return pRoot;
        else{
            TreeNode *right_nearest = find_nearest_node(pRoot->right, target);
            return abs(right_nearest->val - target) >= abs(pRoot->val - target) ? pRoot : right_nearest;
        }
    }
}

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/faan0966/article/details/79959856

LeetCode 270. Closest Binary Search Tree Value(二叉搜索树最接近值查找)

原题网址:https://leetcode.com/problems/closest-binary-search-tree-value/ Given a non-empty binary sear...
  • jmspan
  • jmspan
  • 2016-04-13 02:53:19
  • 923

Leetcode NO.270 Closest Binary Search Tree Value

本题题目要求如下: Given a non-empty binary search tree and a target value, find the value in the BST th...
  • u012290414
  • u012290414
  • 2015-10-23 11:12:54
  • 524

二叉搜索树中查找与目标数字最接近的节点

struct Node{ int value; Node* left; Node* right; }; Node* LeftPrev = NULL; Node* RightPrev = NULL; ...
  • Splendour
  • Splendour
  • 2012-07-04 21:26:07
  • 1403

C++实现LeetCode(三个数的和最接近目标数)

Leetcode:16题: Given an array S of n integers, find three integers in S such that the sum is closest...
  • a173373310
  • a173373310
  • 2017-08-14 19:06:25
  • 366

二叉查找树(3) - 查找值最小的节点

查找最小值的操作是很简单的,只需要从根节点递归的遍历到左子树节点即可。当遍历到节点的左孩子为NULL时,则这个节点就是树的最小值。 上面的树中, 从根节点20开始,递归遍历左子树,直到为NULL...
  • shltsh
  • shltsh
  • 2015-06-16 00:17:45
  • 1821

LeetCode 230. Kth Smallest Element in a BST(二叉搜索树中的第K个元素)

原题网址:https://leetcode.com/problems/kth-smallest-element-in-a-bst/ Given a binary search tree, writ...
  • jmspan
  • jmspan
  • 2016-04-05 11:16:32
  • 733

LeetCode 重构二叉搜索数,即找出两个被交换的节点

原题:Two elements of a binary search tree (BST) are swapped by mistake. Recover the tree without ch...
  • u013276277
  • u013276277
  • 2017-05-17 15:43:12
  • 690

查找和目标数最接近的或者相等的数

此文转自博客http://blog.csdn.net/huoyunshen88/article/details/8567970, 自己学习标记下,感谢博主。 /**  * 查找出最接近目标值的数,...
  • fayeyiwang
  • fayeyiwang
  • 2016-04-13 17:59:30
  • 480

LeetCode 3Sum Closest 最接近目标数的三个数和

这道题和3Sum差不多,不过也有不一样的,主要是: 1 这里不用判断处理重复问题 2 要比较其中的三个数的和与目标数的差的大小。...
  • kenden23
  • kenden23
  • 2013-11-25 09:13:02
  • 2929

java折半查找法 查找数组中与目标数最接近的数

查找数组中最接近目标数的数 /** * 查找最接近目标值的数,并返回 * @param array * @param targetNum * @return ...
  • caoshichao520326
  • caoshichao520326
  • 2013-03-21 10:46:38
  • 3983
收藏助手
不良信息举报
您举报文章:LeetCode 270. 二叉搜索树中查找与目标数字最接近的节点
举报原因:
原因补充:

(最多只允许输入30个字)