class Solution {
public static ListNode swapPairs(ListNode head) {
if(head==null||head.next==null) return head;
ListNode result=null;
ListNode index=head;
// 记录链表的交换前的前置节点位置
ListNode pre=null;
while (index!=null&&index.next!=null){
ListNode next=index.next.next;
ListNode tem=index;
index=index.next;
index.next=tem;
tem.next=next;
if(result==null)
result=index;
if(pre==null){
pre=index.next;
}else{
// 更新前置节点指向的后续节点
pre.next=index;
// 前置节点移动下位置
pre=index.next;
}
index=next;
}
return result;
}
}
力扣,两两交换链表中的节点
最新推荐文章于 2024-07-08 22:12:26 发布