您的位置:首页 > Web前端 > Node.js

LeetCode Swap Nodes in Pairs

2013-12-10 18:18 225 查看
ListNode *swapPairs(ListNode *head) {
ListNode *head2=NULL,*p=NULL,*q=NULL,*s=NULL;
p = head;
if (p==NULL||p->next==NULL)
return p;
while(p!=NULL&&p->next!=NULL)
{
s = p->next;
p->next = s->next;
p = p->next;
if (head2==NULL)
{
head2 = s;
q = head2;
}
else
{
q->next = s;
q = q->next;
}
}
if (q!=NULL)
q->next = NULL;

ListNode *head3=NULL;
s = head3;
while(head!=NULL&&head2!=NULL)
{
p = head2;
q = head;
head = head->next;
head2 = head2->next;
if(head3==NULL)
{
head3 = p;
head3->next = q;
s = head3->next;
}
else
{
s->next = p;
p->next = q;
s = q;
}
}
if (head==NULL)
s->next = head2;
if(head2==NULL)
s->next = head;
return head3;
}
ListNode *l1 = new ListNode(1);
ListNode *l2 = new ListNode(2);
ListNode *l3 = new ListNode(3);
ListNode *l4 = new ListNode(4);
ListNode *l5 = new ListNode(5);
ListNode *l6 = new ListNode(6);
ListNode *l7 = new ListNode(7);
ListNode *l8 = new ListNode(8);
ListNode *l9 = new ListNode(9);
l1->next = l2;
l2->next = l3;
l3->next = l4;
l4->next = l5;
l5->next = l6;
l6->next = l7;
l7->next = l8;
l8->next = l9;
ListNode *head3=NULL;
head3 = swapPairs(l1);
ListNode *h=head3;
while(h!=NULL)
{
cout<<h->val<<" ";
h = h->next;
}



                                            
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: