标签:des style blog color io ar for div sp
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.
思路:
class Solution { public: ListNode *swapPairs( ListNode *head ) { ListNode guard( -1 ); guard.next = head; head = &guard; while( head ) { ListNode *node = head->next; if( !node || !node->next ) { return guard.next; } head->next = node->next; node->next = head->next->next; head->next->next = node; head = node; } return guard.next; } };
递归:
1 class Solution { 2 public: 3 ListNode *swapPairs( ListNode *head ) { 4 if( head == 0 || head->next == 0 ) { return head; } 5 ListNode *node = head->next; 6 head->next = swapPairs( node->next ); 7 node->next = head; 8 return node; 9 } 10 };
标签:des style blog color io ar for div sp
原文地址:http://www.cnblogs.com/moderate-fish/p/3959285.html