讲一下采坑的点,以前看数构时候没有理解为什么加一个头结点会更方便,写完这题就理解了,主要是不写的话,边界条件下的next属性访问会报错,而加上头结点,就可以用一个判定全部解决。
然后是调换顺序要记得调整进入点,不然结构会乱
然后是结点命名还是要标准一点,用的pq然后错了,找了半天
class Solution {
public ListNode swapPairs(ListNode head) {
ListNode top = new ListNode();
top.next = head;
ListNode cur =top;
ListNode p ;
ListNode q;
ListNode r;
while(cur.next!=null&&cur.next.next!=null){
p = cur.next;
q = cur.next.next;
r = cur.next.next.next;
cur.next = q;
q.next = p;
p.next = r;
cur = p;
}
return top.next;
}
}