[刷题] 206 Reverse Linked List
2024-09-27 04:27:17
要求
- 反转一个链表
- 不得改变节点的值
示例
- head->1->2->3->4->5->NULL
- NULL<-1<-2<-3<-4<-5<-head
思路
- 设置三个辅助指针
实现
- 50实现反转,51-52实现后移
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 }
相关
- 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
最新文章
- WINDOWS7(vs2012+wdk7.6) 配置驱动开发环境
- glusterfs 中的字典查询
- RHEL5.8配置NFS服务
- ElasticSearch之一——索引
- KMP(fail数组应用) LA 3026 Period
- php代码优化,mysql语句优化,面试需要用到的
- php基础篇-二维数组排序 array_multisort
- echo中的逗号
- bootstrap插件学习-bootstrap.tooltip.js
- Bug in Code
- HOOK钩子 - 钩子函数说明
- 关于 asp.net 点击确定按钮 获取不到新值问题
- tar split cat 创建、合并分卷压缩包
- vxWorks驱动架构
- 【转】史上最详细的Composer安装tp5教程
- WPF Grid布局
- Apple IAP Subscriptions
- spring(二、bean生命周期、用到的设计模式、常用注解)
- Visual Studio安装SVN插件
- RAPID程序设计
热门文章
- go的令牌桶实现库 go-rate
- 学一手,知乎大V(轮子哥)当年靠它进微软亚洲研究院
- 【C/C++】malloc和new的区别
- 并发编程(共享模型之管程wait notify)
- 自动化kolla-ansible部署ubuntu20.04+openstack-victoria之文件配置-08
- 10276 - Hanoi Tower Troubles Again!(思维,模拟)
- C++ 2.0新特性
- 常用的STL
- adbi学习:java hook实现机制
- hdu2167 方格取数 状态压缩dp