#include <stdio.h> #include <stdlib.h> typedef struct ListNode { int m_nKey; struct ListNode *m_pNext; } LIST; void print( LIST *head, int n, int k ); int main() { LIST *head,*p1,*p2; int k,n=0; p1 = p2 = ( LIST * )malloc( sizeof( LIST ) ); head = p1; if ( head == NULL ) { printf("out of memory/n"); exit( 1 ); } scanf("%d",&p1->m_nKey); while ( p1->m_nKey != 0 ) { n++; p2 = p1; p1 = ( LIST * )malloc( sizeof( LIST ) ); scanf("%d",&p1->m_nKey); p2->m_pNext = p1; } p2->m_pNext = NULL; if ( n==0 ) { printf("NONE!/n"); exit( EXIT_FAILURE ); } printf("insert the jiedian num:"); scanf("%d",&k); print( head, n, k ); free( head ); return EXIT_SUCCESS; } void print( LIST *head, int n, int k ) { int m; LIST *p1,*p2; p1 = head; m = n-k-1; for ( ; m != 0; m-- ) { p2 = p1->m_pNext; p1 =p2; } printf("%d/n",p1->m_nKey); }