[Leetcode]Swap Nodes in Pairs

来源:互联网 发布:toad oracle数据库管理 编辑:程序博客网 时间:2024/06/03 16:59

Swap Nodes in Pairs My Submissions Question
Total Accepted: 69767 Total Submissions: 210542 Difficulty: Medium
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) {        ListNode* h = new ListNode(-1);        h->next = head;        auto p = h;        ListNode* begin;        ListNode* next;        while(p && p->next && p->next->next){ //should think the next and next's next            begin = p->next;            next = begin->next;            p->next = next;            begin->next = next->next;            next->next = begin;            p = begin;        }        return h->next;    }};

又是一遍AC。。。链表的细节实现题只要在纸上画好了 基本没问题

题数也达到了90~

0 0
原创粉丝点击