[leetcode]Reverse Linked List II (反转链表值 C语言实现)
来源:互联网 发布:bs软件开发 编辑:程序博客网 时间:2024/06/07 01:42
Reverse Linked List II
Reverse a linked list from position m to n. Do it in-place and in one-pass.
For example:
Given 1->2->3->4->5->NULL, m = 2 and n = 4,
return 1->4->3->2->5->NULL.
Note:
Given m, n satisfy the following condition:
1 ≤ m ≤ n ≤ length of list.
题意:给定一个链表,按给定的m,n反转相应位置的链表值。
解题思路:采用最简单的方法,最粗暴的方法来实现:
动态申请一个无限大的数组来保存链表值,对数组进行倒换数值,并再次赋给链表,从而避免了交换链表指针的麻烦。
实现C代码如下:
/**解题思路:采用最笨的办法,动态申请一个无限大的数组来保存链表值,对数组进行倒换数值,并再次赋给链表,从而避免了交换链表指针的麻烦。 * Definition for singly-linked list. * struct ListNode { * int val; * struct ListNode *next; * }; */struct ListNode *reverseBetween(struct ListNode *head, int m, int n) { int i,j,temp; int *arr; struct ListNode *p=head; arr = (int *)malloc(999*sizeof(int));//动态申请一个无限大的内存用于存储链表值 memset(arr,0,sizeof(arr)); i=0; while(p != NULL){//把链表值赋值给数组 arr[i] = p->val; i++; p = p->next; } i = 0; for(j = m-1; j <= (n+m)/2-1;j++){//循环到(m+n)/2的中间值,因为只有两侧的值才需要交换 temp = arr[j]; arr[j] = arr[n-1-i]; arr[n-1-i] = temp; i++; } p = head;i = 0; while(p != NULL){//把已经反转的数组值赋值给链表 p->val = arr[i]; i++; p = p->next; } return head;}
0 0
- [leetcode]Reverse Linked List II (反转链表值 C语言实现)
- C实现 LeetCode->Reverse Linked List II (双指针大法)(单链表反转)
- [C语言][LeetCode][92]Reverse Linked List II
- 【LeetCode】 92. Reverse Linked List II C语言
- 【LeetCode-面试算法经典-Java实现】【092-Reverse Linked List II(反转单链表II)】
- [C++]LeetCode: 62 Reverse Linked List II
- [leetcode-92]Reverse Linked List II(c++)
- LeetCode(92): Reverse Linked List II (C++)
- 【C++】【LeetCode】92. Reverse Linked List II
- LeetCode-Reverse Linked List II(反转链表)
- Leetcode Reverse Linked List II 反转部分单向链表
- [leetcode] Reverse Linked List II 链表反转
- leetcode 92. Reverse Linked List II 链表 部分反转
- (Leetcode)92. Reverse Linked List II ——反转单链表
- leetcode 92. Reverse Linked List II 反转链表
- [C语言][LeetCode][206]Reverse Linked List
- 【LeetCode】 206. Reverse Linked List C语言
- LeetCode[Linked List]: Reverse Linked List II
- 关于mysql数据类型的一点所得
- POJ2342 Anniversary party
- byteorder.h学习
- ScrollView嵌套GridView,只给GridView分发点击事件
- 设置了UIControlStateDisabled却无效
- [leetcode]Reverse Linked List II (反转链表值 C语言实现)
- PopupWindow用法
- Linux---ifconfig命令
- static修饰的方法不能用this引用
- 兔子--Android Studio创建项目
- 面向对象(二)
- iptables指南删减版
- 多线程安全的Singleton单件模式在C++,java与C#下的实现
- Linux 文本编辑工具vim