zoukankan      html  css  js  c++  java
  • 给出一个单向链表的头指针,输出该链表中倒数第K个节点的指针

    Q:给出一个单向链表的头指针,输出该链表中倒数第K个节点的指针,链表的倒数第0个节点为链表的尾节点(尾节点的next成员为NULL)

           NODE* findnode(NODE *head,unsigned int k);

     思路:首先求出单向链表的长度为Len,然后从链表头指针开始遍历,一直遍历Len-1-K次就可以找到倒数第K个节点指针。

      代码实现如下:

     1 #include <iostream.h>
     2 #include <assert.h>
     3 
     4 typedef struct Node
     5 {
     6     int data;
     7     struct Node *next;
     8 }Node;
     9 
    10 //根据提供的数据创建单链表
    11 Node *CreateList(int data[],int n)
    12 {
    13     assert(n>0);
    14     Node *head=new Node;
    15     head->data=data[0];
    16     head->next=NULL;
    17 
    18     Node *p=head;
    19     
    20     
    21     for (int i=1;i<n;i++)
    22     {
    23         Node *p1=new Node;
    24         p1->data=data[i];
    25         p1->next=NULL;
    26         p->next=p1;
    27         p=p1;
    28     }
    29         
    30     return head;
    31 }
    32 
    33 //获取单链表的长度
    34 int GetListLen(Node *head)
    35 {
    36     int len=0;
    37     while(head)
    38     {
    39         len++;
    40         head=head->next;
    41     }
    42     return len;
    43 }
    44 
    45 //选择倒数第K个节点指针
    46 Node *FindNode(Node *head,int k)
    47 {
    48     int len=GetListLen(head);
    49     if (k>len-1)
    50     {
    51         return NULL;
    52     }
    53 
    54     int num=len-k-1;
    55     Node *p=head;
    56 
    57     while(num)
    58     {
    59         p=p->next;
    60         num--;
    61     }
    62     return p;
    63 }
    64 
    65 void main()
    66 {
    67     int data[5]={1,2,3,4,5};
    68     Node *head=CreateList(data,5);
    69     int length=GetListLen(head);
    70     cout<<length<<endl;
    71 
    72     Node *temp=FindNode(head,2);
    73     cout<<temp->data<<endl;
    74 }
  • 相关阅读:
    在你设计中可能用到的20个杂志 PSD 原型
    Gradify
    CamanJS – 提供各种图片处理的 JavaScript 库
    免费素材:包含 250+ 组件的 DO UI Kit
    24个很赞的 Node.js 免费教程和在线指南
    Dynamics.js
    Page Scroll Effects
    Slides
    15款加速 Web 开发的 JavaScript 框架
    Wee – 为现代 Web 开发打造的 CSS 脚手架
  • 原文地址:https://www.cnblogs.com/Trony/p/2648762.html
Copyright © 2011-2022 走看看