反置链表
发布网友
发布时间:2022-05-29 23:05
我来回答
共1个回答
热心网友
时间:2024-10-14 07:00
1 List reverse(List l) { //返回类型List 这个程序就是把输入的List l,里面的指针都反过来.
2 if(!l) return l; //如果List l是空的 返回l
3 list cur = l.next;
4 list pre = l;
5 list tmp;
6 pre.next = null;
7 if ( cur ) { //这个循环不太好讲清楚,其实你可以画个图就很明了了.
8 tmp = cur;
9 cur = cur.next;
10 tmp.next = pre
11 pre = tmp;
12 } //比如List l的内容是 A->B->C->D->... 循环每次只反转一个指针,第一次过后变成 A<-B C->D->...第二次后就是A<-B<-C D->...
13 return tmp; //经过循环后所有指针都反转了.这时tmp指向是队头(就是原来l的队尾,已经反过来了),把tmp返回.
14}