一:解题思路 Time:O(n),Space:O(1) 二:完整代码示例 (C++版和Java版) C++: class Solution { public: ListNode* deleteDuplicates(ListNode* head) { ListNode* dummy = new Lis ...
分类:
其他好文 时间:
2020-04-08 22:58:22
阅读次数:
119
单链表的基本操作: 1、单链表反转 2、链表中环的检测 3、两个有序链表的合并 4、删除倒数第K个结点 5、求链表的中间结点 编写链表代码的注意事项: 1、如果链表为空时,代码是否能正常工作? 2、如果链表只包含一个结点时,代码是否能正常工作? 3、如果链表只包含两个结点时,代码是否能正常工作? 4 ...
分类:
其他好文 时间:
2020-04-06 17:15:56
阅读次数:
120
/** * * 问题:合并两个有序的单链表 * 给定两个有序单链表的头节点 head1和head2, 请合并两个有序链表, 合并后的链表依然有序, * 并返回合并后链表的头节点。 * 例如: * 0->2->3->7->null * 1->3->5->7->9->null * 合并后的链表为: 0- ...
分类:
其他好文 时间:
2020-04-06 13:25:32
阅读次数:
65
将两个升序链表合并为一个新的升序链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。 示例:输入:1->2->4, 1->3->4输出:1->1->2->3->4->4优解: /** * Definition for singly-linked list. * type ListNode s ...
分类:
其他好文 时间:
2020-04-05 18:51:13
阅读次数:
61
1 /** 2 * Definition for singly-linked list. 3 * struct ListNode { 4 * int val; 5 * ListNode *next; 6 * ListNode(int x) : val(x), next(NULL) {} 7 * }; ...
分类:
其他好文 时间:
2020-04-01 15:00:17
阅读次数:
56
在面试某手的时候,完成了一个有序链表的合并,之后面试官又要求用循环不变式来证明算法的正确性……循环不变式?这是啥 后来发现这是算法导论第一章的内容。 不会=算法导论没看 分析过程 必须证明三条性质 + 初始化:循环的第一次迭代之前,它为真 + 保持:如果循环的某次迭代之前它为真,那么下次迭代之前它仍 ...
分类:
编程语言 时间:
2020-03-31 01:04:46
阅读次数:
111
给定一批严格递增排列的整型数据,给定一个x,若x不存在,则插入x,要求插入后保持有序。存在则无需任何操作。 输入格式: 输入有两行: 第一个数是n值,表示链表中有n个数据。后面有n个数,分别代表n个数据。 第二行是要插入的数。 输出格式: 输出插入后的链表数据,以空格分开。行末不能有多余的空格。 输 ...
分类:
其他好文 时间:
2020-03-30 23:20:50
阅读次数:
520
今天写了关于删除有序链表中相同元素的链表题目,自己在算法设计方面确实是很薄弱,算法思路都没有就开始动笔,肯定结果很糟糕,还有一个就是近期是以刷题为主,而且刷题主要是要多多参考别人优秀成熟的代码。 这道题题目很简单,难点在思路和细节上面 思路就是用st指向所有相同数的前一个节点,用指针p来实现遍历,找 ...
分类:
其他好文 时间:
2020-03-24 00:58:28
阅读次数:
72
将两个有序链表合并为一个新的有序链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。 示例: 输入:1->2->4, 1->3->4 输出:1->1->2->3->4->4 思路: 因为两个列表都是有序列表,可以直接进行递归调用,有序地从两个链表中取节点拼接成新的链表。 代码: /** * ...
分类:
其他好文 时间:
2020-03-18 20:05:14
阅读次数:
54
1 /** 2 * Definition for singly-linked list. 3 * struct ListNode { 4 * int val; 5 * ListNode *next; 6 * ListNode(int x) : val(x), next(NULL) {} 7 * }; ...
分类:
其他好文 时间:
2020-03-15 18:52:06
阅读次数:
51