链表
文章平均质量分 53
stevewongbuaa
这个作者很懒,什么都没留下…
展开
-
lintcode merge-k-sorted-lists 合并k个排序链表
问题描述lintcode笔记用到了堆/优先队列 代码1用到了STL的priority_queue 代码2用到了STL的heap,要特别注意push_heap,pop_heap的实际操作,我就被坑了一上午的时间。比如说,如果是小顶堆的话,pop_heap是把要删除的元素(最小的元素)放到了最后,然后再用vec.pop_back()才能正确地删除。还有cmp要写成cmp()。 代码3自己写了个he原创 2016-07-24 15:22:53 · 523 阅读 · 0 评论 -
lintcode flatten-binary-tree-to-linked-list 将二叉树拆成链表 前序扁平化 中序扁平化
问题描述lintcode笔记看了半天还是比较能接受递归的解法。参考: [LeetCode] flatten binary tree 扁平化二叉树 思路:假设以下函数 TreeNode covert2link(TreeNode *root) 可以将一棵树转化为符合要求的链表,并返回链表的尾部(链表的头部必定是root)。那么该怎么做呢?那就是: 首先,调用这个函数把左子树转化为符合要求的链表,原创 2016-07-20 16:04:47 · 855 阅读 · 0 评论 -
lintcode add-two-numbers 链表求和
问题描述你有两个用链表代表的整数,其中每个节点包含一个数字。数字存储按照在原来整数中相反的顺序,使得第一个数字位于链表的开头。写出一个函数将两个整数相加,用链表形式返回和。 样例 给出两个链表 3->1->5->null 和 5->9->2->null,返回 8->0->8->null笔记在代码2中,要注意的时判断l1和l2是否到了尽头。 if (l1 != NULL)原创 2016-07-20 08:54:19 · 565 阅读 · 0 评论 -
lintcode 翻转链表
问题描述http://www.lintcode.com/zh-cn/problem/reverse-linked-list/样例 给出一个链表1->2->3->null,这个翻转后的链表为3->2->1->null笔记就是倒腾一下几个节点,找递推规律代码/** * Definition of ListNode * * class ListNode { * public: * i原创 2016-08-28 17:07:57 · 1345 阅读 · 0 评论 -
约瑟夫环问题
问题描述约瑟夫环(约瑟夫问题)是一个数学的应用问题:已知n个人(以编号1,2,3…n分别表示)围坐在一张圆桌周围。从编号为k的人开始报数,数到m的那个人出列;他的下一个人又从1开始报数,数到m的那个人又出列;依此规律重复下去,直到圆桌周围的人全部出列。通常解决这类问题时我们把编号从0~n-1,最后[1] 结果+1即为原问题的解。参考解题笔记(10)——约瑟夫环问题约瑟夫环问题(数学解法)Josep原创 2016-08-11 14:19:58 · 638 阅读 · 0 评论