24. Swap Nodes in Pairs
----------------------------------------------------------------------------
Mean:
给定一个链表,交换这个链表两两相邻的元素.
analyse:
略
Time complexity: O(N)
view code
/** * ----------------------------------------------------------------- * Copyright (c) 2016 crazyacking.All rights reserved. * ----------------------------------------------------------------- * Author: crazyacking * Date : 2016-02-19-10.35 */ #include <queue> #include <cstdio> #include <set> #include <string> #include <stack> #include <cmath> #include <climits> #include <map> #include <cstdlib> #include <iostream> #include <vector> #include <algorithm> #include <cstring> using namespace std; typedef long long( LL); typedef unsigned long long( ULL); const double eps( 1e-8); // 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 || head -> next == nullptr) return head; ListNode * frontPtr = head , * backPtr = head -> next; while( frontPtr && backPtr) { swap( frontPtr -> val , backPtr -> val); frontPtr = frontPtr -> next; if( frontPtr != nullptr) frontPtr = frontPtr -> next; backPtr = backPtr -> next; if( backPtr != nullptr) backPtr = backPtr -> next; } return head; } }; int main() { return 0; } /* */