zoukankan      html  css  js  c++  java
  • 二叉搜索树查找与目标数字最接近的节点。

    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;
                }
            }
        }
        
    }
  • 相关阅读:
    maven
    ELK
    gitlab 升级
    平安工作流程
    平安云应用场景
    nginx基于uwsgi部署Django (单机搭建)
    ansible
    nginx理论
    GIT
    docker(三)
  • 原文地址:https://www.cnblogs.com/hojor/p/4446437.html
Copyright © 2011-2022 走看看