问题
https://leetcode.com/problems/swap-nodes-in-pairs/
代码
/**
* Definition for singly-linked list.
* struct ListNode {
* int val;
* ListNode *next;
* ListNode(int x) : val(x), next(NULL) {}
* };
*/
class Solution {
public:
ListNode* swapPairs(ListNode* head) {
ListNode Head(5);
Head.next = head;
ListNode* pre = &Head;
ListNode* first = pre->next;
ListNode* sec = first? first->next:0;
ListNode* remain = sec? sec->next:0;
while(sec){
pre->next = sec;
sec->next = first;
first->next = remain;
pre = first;
first = remain;
sec = first?first->next:0;
remain = sec? sec->next: 0;
}
return Head.next;
}
};
本文介绍了一种解决LeetCode上“成对交换链表中节点”问题的方法。该问题要求将链表中的节点两两交换。通过使用一个辅助头结点,并迭代地更新前驱节点、当前节点、下一个节点及剩余节点指针来实现这一目标。

被折叠的 条评论
为什么被折叠?



