2022年11月20日 星期日

[24] Swap Nodes in Pairs

奇怪...在外面寫的時候就卡住超久Orz
1,2,3,4 應該變成 2,1,4,3 但是一直出現2,1,3 
第二組的head一直無法更新>< 也就是新的1 沒辦法往後指到4 !
要用一個pre pointer 去存一下
/**
* Definition for singly-linked list.
* struct ListNode {
* int val;
* struct ListNode *next;
* };
*/
struct ListNode* swapPairs(struct ListNode* head){
struct ListNode* p1;
struct ListNode* p2;
struct ListNode* pre;
p1=head;
pre=head;
while(p1!=NULL && p1->next!=NULL)
{
p2=p1->next;
struct ListNode* tmp=p2->next;
p1->next=tmp;
p2->next=p1;
if (p1==head)
head=p2;
else
pre->next=p2;
pre=p1;
p1=tmp;
}

return head;
}

沒有留言:

張貼留言