输出一个单链表中倒数第K个节点

来源:互联网 发布:傲剑北冥升级数据大全 编辑:程序博客网 时间:2024/05/22 15:48

在找实习的一次电话面试中遇到了这么个问题。

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

思路:设置两个指针p1,p2;

             p1=head;       p2=head;

            先让p2向前走k步,然后同时让p1,p2向后走。

            当p2走到头的时候,p1所指的节点就是所求节点。

struct node{int data;node *next;};node* fun(node *head,int k){node *p1,*p2;    p1 = p2 = head;    for(int i=0;i<k;i++)//让第二个指针向后走k步         p2=p2->next;    while(p2!=NULL)    {        p1=p1->next;        p2=p2->next;    }    return p1;}

转自:http://blog.csdn.net/tianshuai11/article/details/7107573
原创粉丝点击