题目要求: 输入: 1 2 3 4 5 NULL 输出: 5 4 3 2 1 NULL 方法一: 使用三个指针用来保存下一个节点,当前节点 和前一个节点。 方法二: 递归用的很巧妙,对于链表的题目多了一种解题思路。不过要控制好边界情况。 ...
分类:
其他好文 时间:
2019-10-28 01:12:21
阅读次数:
85
1.题目描述: 反转一个单链表。 2.解题思路及代码: 迭代法 ...
分类:
其他好文 时间:
2019-10-27 20:39:53
阅读次数:
89
头依次拔下来,按顺序插进另一个链表: 执行用时 :44 ms, 在所有 python3 提交中击败了93.17%的用户 内存消耗 :14.9 MB, 在所有 python3 提交中击败了19.62%的用户 ——2019.10.24 ...
分类:
其他好文 时间:
2019-10-24 22:02:57
阅读次数:
97
题目描述 输入一个链表,反转链表后,输出新链表的表头。 题解: 每次只反转一个节点,先记住cur->next, 然后pre->cur,即可; 1 class Solution { 2 public: 3 ListNode* ReverseList(ListNode* pHead) { 4 if (p ...
分类:
其他好文 时间:
2019-10-14 00:58:01
阅读次数:
78
第一种方法: 额外空间复杂度O(N) ,遍历链表时,将元素入栈,再次遍历时,从栈中弹出元素,比较两者的大小,就可以判断是不是回文链表第二种方法:利用快慢指针,先找到链表的中间位置,然后反转链表的后半部分,再分别从链表两头遍历比较大小,最后将链表恢复为原始结构 ...
分类:
其他好文 时间:
2019-10-08 18:39:39
阅读次数:
114
"传送门:[LeetCode] 206. 反转链表" 题目描述 反转一个单链表。 示例 : 输入: 1 2 3 4 5 NULL 输出: 5 4 3 2 1 NULL 进阶: 你可以迭代或递归地反转链表。你能否用两种方法解决这道题? 链表定义如下: 分析与代码 解法一、迭代 用一个 pre 指针记录 ...
分类:
其他好文 时间:
2019-10-01 18:08:06
阅读次数:
68
反转从位置 m 到 n 的链表。请使用一趟扫描完成反转。 说明:1 ≤ m ≤ n ≤ 链表长度。 示例: 输入: 1->2->3->4->5->NULL, m = 2, n = 4输出: 1->4->3->2->5->NULL 来源:力扣(LeetCode)链接:https://leetcode- ...
分类:
其他好文 时间:
2019-09-27 21:20:29
阅读次数:
86
链接:https://leetcode-cn.com/problems/reverse-linked-list 反转一个单链表。 示例: 输入: 1->2->3->4->5->NULL输出: 5->4->3->2->1->NULL进阶:你可以迭代或递归地反转链表。你能否用两种方法解决这道题? 这道题 ...
分类:
其他好文 时间:
2019-09-21 21:13:10
阅读次数:
75
方法一:迭代 该方法定义了头节点与尾节点两个变量,通过nextTemp记录指针,指针顺序1->2->3,通过迭代第二步修改引用1<-2<-3。 复杂度分析 时间复杂度:O(n)。 假设 nn 是列表的长度,时间复杂度是 O(n)。 空间复杂度:O(1)。 时间复杂度:O(n)。 假设 nn 是列表的 ...
分类:
其他好文 时间:
2019-09-11 09:45:27
阅读次数:
79
```CPP
/* struct ListNode { int val; struct ListNode *next; ListNode(int x) : val(x), next(NULL) { } };*/ class Solution { public: ListNode* ReverseLi... ...
分类:
其他好文 时间:
2019-09-01 21:59:09
阅读次数:
90