#include<stdio.h>
#include<stdlib.h>
#define NULL 0
typedef struct LNode
{
struct LNode *next;
int data;
}LNode,*lnode;
void createList(lnode &l,int n)
{
lnode p,q;
l=(lnode)malloc(sizeof(LNode));
p=l;
for(int i=0;i<n;i++)
{
q=(lnode)malloc(sizeof(LNode));
scanf("%d",&q->data);
p->next=q;
p=q;
}
p->next=NULL;
}
void printList(lnode l)
{
lnode p;
p=l->next;
while(p)
{
printf("%d ",p->data);
p=p->next;
}
}
void printListK(lnode l,int k)
{
lnode p,q;
int i=0;
q=p=l->next;
while(p)
{
p=p->next;
i++;
if(i>k)
q=q->next;
}
if(q==l->next)
printf("ERROR!");
else
printf("the last k element is %d\n",q->data);
}
void main()
{
int n,k;
lnode l;
scanf("%d",&n);
createList(l,n);
printf("output:");
printList(l);
printf("\ninput K:");
scanf("%d",&k);
printListK(l,k);
printf("\n");
}
输出链表的倒数第k个节点
最新推荐文章于 2019-06-18 18:04:55 发布