Get:
当前指针a指向的地址如果是空的话,a->next无法指向任何地址
将单向链表的奇偶位置互换
代码:
/**
* 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 Zero(0);
ListNode *pre=&Zero,*l=NULL,*r=NULL;
ListNode *tmp=pre;
pre->next=head;
while(pre->next && pre->next->next){
l=pre->next;
r=pre->next->next;
pre->next=r;
l->next=r->next;
r->next=l;
pre=l;
}
return tmp->next;
}
};
本文介绍了一种在单向链表中实现奇数位置与偶数位置元素互换的方法。通过定义一个辅助节点并使用迭代的方式,每次选取相邻的两个节点进行位置调换,直至链表末尾。该算法确保了即使在链表长度为奇数的情况下也能正确工作。

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



