leetCode 24. Swap Nodes in Pairs 链表
24. Swap Nodes in Pairs
Given a linked list, swap every two adjacent nodes and return its head.
For example,
Given1->2->3->4
, you should return the list as2->1->4->3
.
Your algorithm should use only constant space. You maynotmodify the values in the list, only nodes itself can be changed.
题目大意:
交换每两个节点的位置。
代码如下:
/***Definitionforsingly-linkedlist.*structListNode{*intval;*ListNode*next;*ListNode(intx):val(x),next(NULL){}*};*/classSolution{public:ListNode*swapPairs(ListNode*head){ListNode*left,*right,*pre,*p;pre=NULL;//记录每两个节点前面的那个节点p=head;while(p!=NULL&&p->next!=NULL){left=p;right=p->next;left->next=right->next;right->next=left;if(pre!=NULL){pre->next=right;}else//链表的头两个节点交换位置{head=right;}pre=left;p=left->next;}returnhead;}};
2016-08-12 23:51:00
声明:本站所有文章资源内容,如无特殊说明或标注,均为采集网络资源。如若本站内容侵犯了原著者的合法权益,可联系本站删除。