#include <iostream> using namespace std; typedef struct NodeLink { int data_in; NodeLink *next; }; NodeLink* EndK(NodeLink *Node,int k); int main() { NodeLink *node=NULL,*head,*temp; int data_in; node=new NodeLink; head=node; cin>>data_in; node->data_in=data_in; //建立链表 while (1) { cin>>data_in; if (data_in==0) { break; } temp=new NodeLink; temp->data_in=data_in; node->next=temp; node=temp; } node->next=NULL; NodeLink *K_end=NULL; int k; cin>>k; K_end=EndK(head,k); system("pause"); return 0; } NodeLink* EndK(NodeLink *Node,int k) { NodeLink *first; NodeLink *second; first=second=Node; int i=1; //首先second先往前走k个节点 while(i!=k) { second=second->next; i++; } //两个指正同步走,碰到尾返回,返回为first; while (second) { first=first->next; second=second->next; } return first; } </iostream></iostream>