码迷,mamicode.com
首页 > 其他好文 > 详细

[刷题] LeetCode 206 Reverse Linked List

时间:2020-04-05 09:14:25      阅读:57      评论:0      收藏:0      [点我收藏+]

标签:creat   lis   font   show   new   size   pen   include   width   

要求

  • 反转一个链表
  • 不得改变节点的值

示例

  • head->1->2->3->4->5->NULL
  • NULL<-1<-2<-3<-4<-5<-head

思路

  • 设置三个辅助指针

技术图片

 

 技术图片

实现

技术图片
 1 #include <iostream>
 2 using namespace std;
 3 
 4 struct ListNode {
 5     int val;
 6     ListNode *next;
 7     ListNode(int x) : val(x), next(NULL) {}
 8 };
 9 
10 ListNode* createLinkedList(int arr[], int n){
11     if( n == 0 )
12         return NULL;
13     ListNode* head = new ListNode(arr[0]);
14     ListNode* curNode = head;
15     for( int i = 1 ; i < n ; i ++ ){
16         curNode->next = new ListNode(arr[i]);
17         curNode = curNode->next;
18     }
19     return head;
20 }
21 
22 void printLinkedList(ListNode* head){
23     ListNode* curNode = head;
24     while( curNode != NULL ){
25         cout << curNode->val << " -> ";
26         curNode = curNode->next;
27     }
28     cout<<"NULL"<<endl;
29     return;
30 }
31 
32 void deleteLinkedList(ListNode* head){
33     ListNode* curNode = head;
34     while( curNode != NULL){
35         ListNode* delNode = curNode;
36         curNode = curNode->next;
37         delete delNode;
38     }
39     return;
40 }
41 
42 class Solution {
43 public:
44     ListNode* reverseList(ListNode* head) {
45         
46         ListNode* pre = NULL;
47         ListNode* cur = head;
48         while( cur != NULL){
49             ListNode* next = cur->next;    
50             cur->next = pre;
51             pre = cur;
52             cur = next;
53         }
54         return pre;
55     }
56 };
57 
58 int main(){
59     int arr[] = {1,2,3,4,5};
60     int n = sizeof(arr)/sizeof(int);
61     
62     ListNode* head = createLinkedList(arr,n);
63     printLinkedList(head);
64     
65     ListNode* head2 = Solution().reverseList(head);
66     printLinkedList(head2);
67     
68     deleteLinkedList(head2);
69     return 0;
70 }
View Code

相关

  • 92 Reverse Linked List II
  • 83 Remove Duplicateds from Sorted List
  • 86 Partition List
  • 328 Odd Even Linked List
  • 2 Add Two Numbers
  • 445 Add Two Numbers II

[刷题] LeetCode 206 Reverse Linked List

标签:creat   lis   font   show   new   size   pen   include   width   

原文地址:https://www.cnblogs.com/cxc1357/p/12635757.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!