Swap Nodes in Pairs

来源:互联网 发布:战舰世界2017岛风数据 编辑:程序博客网 时间:2024/05/17 22:22

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

 

解题方法:

方法和简单:逐对结点进行翻转,在翻转的过程中要十分注意结点之间的指针操作。

Code:

/** * 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){if(head==NULL || head->next==NULL)return head;ListNode* pPre=NULL;ListNode* p=head;ListNode* pre=NULL;int cnt=0;while(p!=NULL && p->next!=NULL){pre=p;p=p->next;ListNode* pNext=p->next;           if(head==pre)head=p;if(pPre!=NULL)pPre->next=p;p->next=pre;pre->next=pNext;pPre=pre;p=pNext;}return head;}};


 

0 0
原创粉丝点击