首页 > 代码库 > LeetCode-Swap Nodes in Pairs
LeetCode-Swap Nodes in Pairs
题目:
Given a linked list, swap every two adjacent nodes and return its head.
For example,
Given 1->2->3->4
, you should return the list as 2->1->4->3
.
Your algorithm should use only constant space. You may not modify the values in the list, only nodes itself can be changed.
代码:
1 class Solution{ 2 public: 3 void swap(ListNode *node1,ListNode *node2){ 4 node1->next=node2->next; 5 node2->next=node1; 6 } 7 8 ListNode* swapPairs(ListNode *head){ 9 if(head==NULL || head->next==NULL) return head;10 ListNode *ppre=NULL,*pre=NULL;11 ListNode *tmp=NULL;12 ListNode *p=head;13 14 while(p){15 pre=p;16 p=p->next;17 if(p->next){18 tmp=p->next;19 }20 21 if(pre==head) head=p;22 if(ppre) ppre->next=p;23 24 ppre=pre;25 p=tmp;26 }27 return head; 28 }29 };
LeetCode-Swap Nodes in Pairs
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。