递归
文章平均质量分 77
HiPricilla
这个作者很懒,什么都没留下…
展开
-
【链表】C++删除链表中重复的结点
题目: 在一个排序的链表中,存在重复的结点,请删除该链表中重复的结点,重复的结点不保留,返回链表头指针。 例如,链表1->2->3->3->4->4->5 处理后为 1->2->5注意要删除的是所有重复的,而不是删除多余的。开始理解成1-2-3-4-5,事实证明全部删除比删除多余复杂挺多。我尝试了三种方法,牛客网上运行通过,思路如下:(1)遍历链表,重复的数字置0,如1-2原创 2016-07-16 18:36:59 · 5620 阅读 · 2 评论 -
【链表】C++链表创建、删除、排序,合并
实现C++链表的创建、删除、排序、合并(保持单调不减)思路:方法1:如果将两链表头尾相接后再整体排序,复杂度太高。因此可以利用链表已经排好序的特点进行逐步合并。用两个指针p1、p2指向两链表头结点head1、head2,并比较,显然,值小的为合并链表的头结点head,假如p1值较小,p1=head, p1后移,再与p2比较,值小的并入合并链表,并且指针加1,依次类推,直到某一个链表为空后,原创 2016-07-19 10:32:08 · 8815 阅读 · 0 评论 -
【链表】C++链表反转、链表逆序打印
题目:C++实现链表逆序打印、链表反转如何将链表逆序,取决于题目的要求。如果面试官只要求打印,一般不改动链表结构为好,如果要求改变链表的方向,则需要改变结构,再顺序打印。方法1:只逆序打印,不改变结构。采用递归,到达尾结点时打印输出,否则进入下一个结点的递归,当递归一层层退出的时候,便可以实现从尾到头的打印。方法2:头插法,改变结构。从第二个结点开始往后,依次把每个结点移至链表头部,要原创 2016-07-18 15:46:14 · 9481 阅读 · 3 评论