FindKthtoTail

    xiaoxiao2025-03-23  15

    #include<stdio.h> #include<stdlib.h> typedef struct LinkNode{ int val; LinkNode* next; }*LinkList; //不带头结点 LinkNode* CreateLink(int n){ LinkList l=NULL;; if(n<=0){ printf("链表为空\n"); return NULL; } l=(LinkNode*)malloc(sizeof(LinkNode)); if(!l){ printf("overflow!"); exit(1); } printf("请输入结点的值\n"); scanf("%d",&l->val); l->next=NULL; LinkNode *p,*q; q=l; for(int i=1;i<n;i++){ p=(LinkNode*)malloc(sizeof(LinkNode)); if(!l){ printf("overflow!"); exit(1); } printf("请输入结点的值\n"); scanf("%d",&p->val); p->next=q->next; q->next=p; q=p; } return l; } //k 为位序 LinkNode* FindKthtoTail(LinkList l,unsigned int k){ if(l==NULL || k==0){ return NULL; } int i,j; LinkNode *p,*q; p=l; //走到第k个 for(i=1;i<k;i++){ p=p->next; if(p==NULL){ printf("链表不足k个\n"); exit(1); } } q=l; while(p->next){ p=p->next; q=q->next; } return q; } void main(){ int n; printf("请输入结点的个数\n"); scanf("%d",&n); LinkList l; l=CreateLink(n); LinkNode* p=FindKthtoTail(l,10); if(p) printf("%3d\n",p->val); else printf("节点为空\n"); }
    转载请注明原文地址: https://ju.6miu.com/read-1297312.html
    最新回复(0)