首页 > 其他 > 详细

[刷题] LeetCode 24 Swap Nodes in Paris

时间:2020-04-06 10:47:56      阅读:44      评论:0      收藏:0      [点我收藏+]

要求

  • 给定一个链表,对于每两个相邻的节点,交换其位置

示例

  • 1->2->3->4->NULL
  • 2->1->4->3->NULL

技术分享图片

 

技术分享图片

实现

技术分享图片
 1 struct ListNode {
 2     int val;
 3     ListNode *next;
 4     ListNode(int x) : val(x), next(NULL) {}
 5 };
 6  
 7 class Solution {
 8 public:
 9     ListNode* swapPairs(ListNode* head) {
10         ListNode* dummyHead = new ListNode(0);
11         dummyHead->next = head;
12         
13         ListNode* p = dummyHead;
14         while( p->next && p->next->next ){
15             ListNode* node1 = p->next;
16             ListNode* node2 = node1->next;
17             ListNode* next = node2->next;
18             
19             node2->next = node1;
20             node1->next = next;
21             p->next = node2;
22             
23             p = node1;
24         }
25         
26         ListNode* retNode = dummyHead->next;
27         delete dummyHead;
28         
29         return retNode;
30     }
31 };
View Code

相关

  • 25 Reverse Nodes in k-Group
  • 147 Insertion Sort List
  • 148 Sort List

[刷题] LeetCode 24 Swap Nodes in Paris

原文:https://www.cnblogs.com/cxc1357/p/12640484.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!