• 删除单链表的倒数第k个结点


    策略

    直接遍历总数为len,再次遍历第len-k+1个就是答案,但是这样遍历了O(N+k)个,可以在O在更短的时间内找到

    图示

    参考代码

    #include <iostream>
    using namespace std;
    
    typedef struct ListNode
    {
        int value;
        ListNode* next;
    }ListNode;
    
    void createList(ListNode *&head)
    {
        head = new(ListNode);
        head->value = 1;
        head->next = NULL;
    
        ListNode *p2 = new(ListNode);
        p2->value = 2;
        p2->next = NULL;
        head->next = p2;
    
        ListNode *p3 = new(ListNode);
        p3->value = 3;
        p3->next = NULL;
        p2->next = p3;
    
        ListNode *p4 = new(ListNode);
        p4->value = 4;
        p4->next = NULL;
        p3->next = p4;
    }
    void deleteList(ListNode *p)
    {
        ListNode *next = NULL;
        while(p != NULL)
        {
            next = p->next;
            delete p;
            p = NULL;
            p = next;
        }
    }
    
    
    
    bool deleteKNode_2(ListNode *head, int k)
    {
        if(head == NULL || k <= 0)
            return false;
        ListNode *pre = head;
        for(int i = 0; i < k - 1; ++i)
        {
            if(pre == NULL)
                return false;
            pre = pre->next;
        }
        ListNode *cur = head;
        while(pre->next)
        {
            pre = pre->next;
            cur = cur->next;
        }
        cout << cur->value;
        cout << "succeed:" << endl;
        return true;
    }
    int main()
    {
        ListNode *head = NULL;
        createList(head);
        int k = 8;
        
        cout << "Result:" << deleteKNode_2(head, 2) << endl;
        deleteList(head);
    }

    结果

    三点注意

    1. 指针为空

    2. k<=0

    3. k<len

  • 相关阅读:
    C# dynamic class inherit from dynamicobject
    C# while timespan via Datetime and Stopwatch
    neo4j实现疾病知识图谱实战
    omop cdm数据质控
    mimic-omop专病数据生产ETL
    Oracle表空间与数据文件
    Oracle 11g 静默安装过程(Centos7)
    Hbase插件之Phoenix
    contentEditable
    jsx render
  • 原文地址:https://www.cnblogs.com/kaituorensheng/p/3608117.html
Copyright © 2020-2023  润新知