1、从尾到头打印链表 2、删除链表节点 3、链表中倒数第K个节点 4、反转链表 5、合并两个排序的链表 6、两个链表的第一个公共节点 最基本的先上,往链表的末尾添加节点: ListNode *AddToTail(ListNode**pHead, int data){ //创建新节点将数据保存下来 L ...
分类:
编程语言 时间:
2018-06-23 13:14:51
阅读次数:
186
剑指Offer:合并两个排序的链表【25】 题目描述 输入两个单调递增的链表,输出两个链表合成后的链表,当然我们需要合成后的链表满足单调不减规则。 题目分析 每次都是比较箭头节点,把小节点连接到已经合并的链表之后,重复的执行此过程,最后如果那个链表已经走完,那就将另一个链表直接连接到合并的链表之后。 ...
分类:
编程语言 时间:
2018-06-22 18:55:19
阅读次数:
208
面试25题:题目:合并两个排序的链表 题:输入两个单调递增的链表,输出两个链表合成后的链表,当然我们需要合成后的链表满足单调不减规则。 解题思路:递归,并需注意对空链表单独处理。 解题代码: ...
分类:
其他好文 时间:
2018-06-19 13:45:58
阅读次数:
159
题目:合并两个排序的链表 题目描述:输入两个单调递增的链表,输出两个链表合成后的链表,当然我们需要合成后的链表满足单调不减规则。 思路;这个题感觉没啥难的,就是分情况讨论下,有循环有递归两种做法 再来个递归的 ...
分类:
编程语言 时间:
2018-06-05 18:40:29
阅读次数:
172
又来更新剑指offer上的题目思路啦。 11、【二进制中1的个数】 题目:输入一个整数,输出该数二进制表示中1的个数。其中负数用补码表示。 思路:每次都将数字n的最后一位1反转成0,不断反转到这个数字变成0,然后我们统计反转了多少次,这样不就可以成功得到这个数字有多少位了吗? 难点:如何反转一个数字 ...
分类:
其他好文 时间:
2018-05-13 14:24:10
阅读次数:
189
前面几篇介绍的选择排序、插入排序、冒泡排序等都是非常简单非常基础的排序算法,都是用了两个for循环,时间复杂度是平方级别的。本篇介绍一个比前面稍微复杂一点的算法:归并排序。归并排序算法里面的归并思想和递归方法是值得我们学习的,归并的过程往往伴随着递归,其他很多地方都会用这两种方法,比如前面一篇《剑指 ...
分类:
编程语言 时间:
2018-05-10 20:50:21
阅读次数:
204
本篇延续上一篇剑指offer题目系列二,介绍《剑指offer》第二版中的四个题目:O(1)时间内删除链表结点、链表中倒数第k个结点、反转链表、合并两个排序的链表。同样,这些题目并非严格按照书中的顺序展示的,而是按自己学习的顺序,每个题目包含了分析和代码。 9、O(1)时间内删除链表结点 题目: 在O ...
分类:
其他好文 时间:
2018-04-24 21:43:30
阅读次数:
162
题目描述 输入两个单调递增的链表,输出两个链表合成后的链表,当然我们需要合成后的链表满足单调不减规则。 解题思路 利用递归的思想,分别从两个链表的头节点开始,比较各自的值,并让新链表的头指针指向值较小的那个头结点。然后把值小的那个链表的头结点抽出,合并两个新链表并让头节点的next指针指向它。若碰到 ...
分类:
编程语言 时间:
2018-04-06 14:01:53
阅读次数:
163
题目描述:输入两个单调递增的链表,输出两个链表合成后的链表,当然我们需要合成后的链表满足单调不减规则。 题目链接:合并两个排序的链表 思路:类似于2路归并排序的合并操作,先取两个链表首结点值小者作为新链表的首结点,然后遍历两个链表,取小者作为其后继结点,直到至少有一个链表为空,最后把至多一个非空链表 ...
分类:
编程语言 时间:
2018-02-14 18:19:08
阅读次数:
208
合并两个排序的链表 题目描述 输入两个单调递增的链表,输出两个链表合成后的链表,当然我们需要合成后的链表满足单调不减规则。 用JavaScript非递归和递归方式都AC了。 非递归: function ListNode(x){ this.val = x; this.next = null; } fu ...
分类:
编程语言 时间:
2018-02-10 20:45:54
阅读次数:
164