#include <stdio.h>
#include <stdlib.h>
typedef struct LNode{
int data;
struct LNode *next;
}LNode;
int my_find_the_kth_from_bottom(LNode *L,int k){
LNode *p=L;
LNode *A;
A=(LNode*)malloc(sizeof(LNode));
A->next=NULL;
while(p->next!=NULL){
p=p->next;
LNode *t;
t=(LNode*)malloc(sizeof(LNode));
t->data=p->data;
t->next=A->next;//头插
A->next=t;
}
int i;
p=A;
for(i=1;i<=k;i++){
if(p->next==NULL) return 0;
p=p->next;
}
printf("%d ",p->data);
return 1;
}
int main(){
LNode *L,*L_last; //头和尾
L=(LNode*)malloc(sizeof(LNode));
L->next=NULL;
L_last=L;
for(int i=1;i<=10;i++){
LNode *new_node;
new_node=(LNode*)malloc(sizeof(LNode));
new_node->data=i;
new_node->next=NULL;
L_last->next=new_node;//尾插,并把尾指针后移
L_last=L_last->next;
}
LNode *p=L;
while(p->next!=NULL){
p=p->next;
printf("%d ",p->data);
}
puts("");
printf("%d\n",my_find_the_kth_from_bottom(L,1));
printf("%d\n",my_find_the_kth_from_bottom(L,6));
printf("%d\n",my_find_the_kth_from_bottom(L,10));
printf("%d\n",my_find_the_kth_from_bottom(L,11));
return 0;
}
MyDS 单链表找倒数第k个结点 tqp42
最新推荐文章于 2022-08-19 11:58:47 发布