您的位置:首页 > 其它

两两交换链表中的节点

2017-03-31 13:37 183 查看
一、问题描述

    给一个链表,两两交换其中的节点,然后返回交换后的链表。

        样例

        给出 
1->2->3->4
, 你应该返回的链表是 
2->1->4->3

二、解题思路
    新建一个链表,用来存储交换完后的节点,然后再定义一个指针,另它指向head->next,然后每两个交换其中的节点即head->val与head->next->val交换,然后再指向下一个节点,依次遍历完,直到head->next为空。
三、我的代码
class Solution {
public:

    /**

     * @param head a ListNode

     * @return a ListNode

     */

    ListNode* swapPairs(ListNode* head) {

        ListNode *p=new ListNode(0);

        p=head;

        while(head!=NULL)

        {

            if(head->next==NULL)

            break;

            ListNode *r;

            r=head->next;

            int val;

            val=head->val;

            head->val=r->val;

            r->val=val;

            head=r->next;

        }

        return p;

    }

};

四、我的感想

     在交换过程中要细心,注意节点和指针的变换,遇到问题要慢慢来,一步一步的去解决才行。

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