二叉排序树数值最接近节点

来源:互联网 发布:java 获取前一天日期 编辑:程序博客网 时间:2024/06/05 09:13
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;            }        }    }}

原创粉丝点击