24. Swap Nodes in Pairs
交换链表中相邻的俩俩结点
public ListNode swapPairs(ListNode head) {
if (head == null)
return null;
if (head.next == null)
return head;
ListNode second = head.next;
head.next = second.next;
second.next = head;
head = second;
ListNode last = head.next;
while (last != null) {
change(last);
if (last.next != null)
last = last.next.next;
else
last = null;
}
return head;
}
public void change(ListNode last) {
if (last.next != null && last.next.next != null) {
ListNode second = last.next.next;
last.next.next = second.next;
second.next = last.next;
last.next = second;
}
}
206. Reverse Linked List
反转链表
public ListNode reverseList(ListNode head) {
if (head == null)
return null;
ListNode p = head;
ListNode last = head;
while (last.next != null) {
ListNode next = last.next;
ListNode temp = next.next;
last.next = temp;
next.next = p;
p = next;
}
return p;
}