![](https://img-blog.csdnimg.cn/20201014180756757.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
链表
链表
低头看天,抬头走路
句句都是正确的废话,招招都是致命的空招。
展开
-
leetcode21. 合并两个有序链表
题目将两个有序链表合并为一个新的有序链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。示例:输入:1->2->4, 1->3->4输出:1->1->2->3->4->4思路不需要构造新的链表节点实现/** * Definition for singly-linked list. * struct ListNode ...原创 2019-07-08 23:01:26 · 117 阅读 · 0 评论 -
leetcode24. 两两交换链表中的节点
题目给定一个链表,两两交换其中相邻的节点,并返回交换后的链表。你不能只是单纯的改变节点内部的值,而是需要实际的进行节点交换。示例:给定 1->2->3->4, 你应该返回 2->1->4->3.思路1.递归2.建立虚拟头结点(为了不对head进行特殊处理)实现class Solution {public: ListNode* swap...原创 2019-07-14 20:58:18 · 130 阅读 · 0 评论 -
leetcode19. 删除链表的倒数第N个节点
题目给定一个链表,删除链表的倒数第 n 个节点,并且返回链表的头结点。示例:给定一个链表: 1->2->3->4->5, 和 n = 2.当删除了倒数第二个节点后,链表变为 1->2->3->5.说明:给定的 n 保证是有效的。思路1.双指针2为了便于操作,建立虚拟头结点实现class Solution {public: L...原创 2019-07-22 23:00:11 · 137 阅读 · 0 评论 -
leetcode160. 相交链表
题目编写一个程序,找到两个单链表相交的起始节点。注意:如果两个链表没有交点,返回 null.在返回结果后,两个链表仍须保持原有的结构。可假定整个链表结构中没有循环。程序尽量满足 O(n) 时间复杂度,且仅用 O(1) 内存。思路先移动较长的链表,让其和较短的链表保持相同长度实现/** * Definition for singly-linked list. * struc...原创 2019-08-05 00:25:15 · 72 阅读 · 0 评论 -
leetcode147. 对链表进行插入排序
题目插入排序是迭代的,每次只移动一个元素,直到所有元素可以形成一个有序的输出列表。每次迭代中,插入排序只从输入数据中移除一个待排序的元素,找到它在序列中适当的位置,并将其插入。重复直到所有输入数据插入完为止。实现/** * Definition for singly-linked list. * struct ListNode { * int val; * Li...原创 2019-08-30 17:24:20 · 102 阅读 · 0 评论 -
leetcode92. 反转链表 II
题目反转从位置 m 到 n 的链表。请使用一趟扫描完成反转。说明:1 ≤ m ≤ n ≤ 链表长度。示例:输入: 1->2->3->4->5->NULL, m = 2, n = 4输出: 1->4->3->2->5->NULL思路与反转链表类似,单要注意边界条件leetcode92. 反转链表 II实现/** * Definition for singly-linked list. * struct ListNode {原创 2020-12-07 13:23:26 · 140 阅读 · 0 评论 -
leetcode206 反转链表
题目反转一个单链表。示例:输入: 1->2->3->4->5->NULL输出: 5->4->3->2->1->NULL进阶:你可以迭代或递归地反转链表。你能否用两种方法解决这道题?思路1.链表的问题注意画出草稿图,理清楚指针的操作步骤就可以了2.写递归程序最重要是把调用函数当做已经执行完了的返回值,然后需要做的后续工作,...原创 2019-08-05 00:09:56 · 100 阅读 · 0 评论