数据结构——寻找单链表倒数第n个结点

原理如图 , 采用双指针

 1 struct node* lastn(struct node *head , int n)
2 {
3 struct node *p , *q ;
4 if(n < 1)
5 {
6 return NULL ;
7 }
8
9 P = head ;
10 while(--n)
11 {
12 if(!p->next)
13 {
14 return NULL ;
15 }
16 else
17 p = p -> next ;
18 }
19
20 q = head ;
21 while(p -> next)
22 {
23 q = q -> next ;
24 p = p -> next ;
25 }
26
27 return q ;
28 }

posted @ 2011-08-19 19:03  MATRIX | yan  阅读(442)  评论(0编辑  收藏  举报