【leetcode】Swap Nodes in Pairs

来源:互联网 发布:手机数据备份怎么弄 编辑:程序博客网 时间:2024/05/21 01:55

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.

注意节点互换的写法:

/** * 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 *temp=head;        ListNode *p1=head;        ListNode *p2;        while(p1!=NULL && p1->next!=NULL)        {            p2=p1->next;//节点互换            p1->next=p2->next;            p2->next=p1;            if(temp!=head)                  temp->next=p2;              else                  head=p2;              temp=p1;              p1=p1->next;         }        return head;    }};
0 0
原创粉丝点击