0
点赞
收藏
分享

微信扫一扫

LeetCode 两两交换链表中的节点


LeetCode 两两交换链表中的节点_数据结构

​​24. 两两交换链表中的节点​​

LeetCode 两两交换链表中的节点_数据结构_02


用三个指针完成两两节点交换,left和right指向的是需要交换位置的节点,pre是用于连接前面链表和正在交换节点的指针

ListNode* swapPairs(ListNode* head) {
if(head == nullptr || head->next == nullptr){
return head;
}

ListNode* newHead = new ListNode(0, head);
ListNode* l = head;
ListNode* r = l->next;
ListNode* pre = newHead;

while(r != nullptr){
l->next = r->next;
r->next = l;
pre->next = r;

pre = l;
l = pre->next;
if (l == nullptr) {
break;
}
r = l->next;
}
return newHead->next;
}


举报

相关推荐

0 条评论