new_problem_1

本题是来自leetcode的反转链表(题号:206)拓展的一道题,难度可以可以设置为简单

题目描述:

a1->a2->a3->a4->a5……->a(n-1)->a(n)->null

链表转换成 a2->a1->a4->a3->a6->a5….a(n)->a(n-1)->null

很容易发现,是奇数位的节点与偶数位的节点交换位置,代码如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
public ListNode reverseList(ListNode head) {
if(head==null) return null;
ListNode temp=new ListNode(-1);
temp.next=head;
ListNode perv=temp;
ListNode cur=temp;
ListNode next=temp;
ListNode Nnext=head;
while(cur!=null){
cur =perv.next;
if(cur==null) break;
next=cur.next;
if(next==null) break;
Nnext=next.next;

//反转
perv.next=next;
next.next=cur;
cur.next=Nnext;

perv=cur;
}
return temp.next;
}