• 数据结构与算法面试题80道(13)


    13:

    题目:输入一个单向链表,输出该链表中倒数第k个结点。链表的倒数第0个结点为链表的尾指针。

    链表结点定义如下

    struct ListNode

    {

     int m_nKey;

     ListNode* m_pNext;

    };

     思路:我用的最笨的办法,先统计长度,在遍历去找,O(2n)

    #include<cstdio>
    #include<iostream>
    using namespace std;
    
    struct ListNode{
        int m_nKey;
        ListNode* m_pNext;
    };
    
    void addNode(ListNode *&mList,int value){
        if(mList==NULL){
             ListNode *_list=new ListNode();
             if(_list==NULL) {cout<<"内存错误"<<endl;return;}
            _list->m_nKey=value;
            _list->m_pNext=NULL;
            mList=_list;
        }else addNode(mList->m_pNext,value);
    }
    
    ListNode* fun_k(ListNode *mList,int k){
        int len=0;
        ListNode *p=mList;
        while(p!=NULL){
            len++;
            p=p->m_pNext;
        }
        if(k>len) return NULL;
        p=mList;
        for(int i=0;i<len-k;i++)
            p=p->m_pNext;
        return p;
    }
    
    int main(){
    
        ListNode *head=NULL;
        addNode(head,1);
        addNode(head,2);
        addNode(head,3);
        addNode(head,4);
        addNode(head,5);
        addNode(head,6);
        addNode(head,7);
        ListNode *p=new ListNode();
    
        int k=3;
        p=fun_k(head,k);
        cout<<"list 的倒数第K个结点是:"<<p->m_nKey<<endl;
        return 0;
    }
  • 相关阅读:
    python程序2:购物车
    挖矿病毒watchbog处理过程
    docker从入门到精通再到放弃
    python基础应用---列表应用
    python基本应用--三元应用
    由java派生出来的证书错误
    python基础应用---格式化输出
    test04
    在博客中模拟Typora中的Dark风格
    Test03 TextBox
  • 原文地址:https://www.cnblogs.com/wabi87547568/p/5263585.html
Copyright © 2020-2023  润新知