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;
                }
            }
        }
        
    }
  • 相关阅读:
    Android应用增量更新
    corner2
    UIProject
    Argo
    flower-recognition
    Android-Chat-Widget
    leanchat-android
    Beautyacticle
    XianBicycle
    完整性约束(章节摘要)
  • 原文地址:https://www.cnblogs.com/hojor/p/4446437.html
Copyright © 2011-2022 走看看