Lintcode题目
文章平均质量分 64
Yvonna_923
这个作者很懒,什么都没留下…
展开
-
165合并两个排序链表
将两个排序链表合并为一个新的排序链表样例 给出 1->3->8->11->15->null,2->null, 返回 1->2->3->8->11->15->null。思路:跟我们合并两个数组一样,链表1的头结点 和链表2的头节点比较,如果链表1头节点的值大于链表2头接点的值, 那么链表2的头结点为合并链表的头结点,那么链表1的头节点继续和链表2的第二个节点(剩余链表2的头结点)原创 2017-07-10 20:27:36 · 268 阅读 · 0 评论 -
372在O(1)时间复杂度删除链表节点
给定一个单链表中的一个等待被删除的节点(非表头或表尾)。请在在O(1)时间复杂度删除该链表节点。样例 Linked list is 1->2->3->4, and given node 3, delete the node in place 1->2->4这里写代码片/** * Definition of ListNode * class ListNode { * public: *原创 2017-07-09 16:17:45 · 227 阅读 · 0 评论 -
73前序遍历和中序遍历树构造二叉树
根据前序遍历和中序遍历树构造二叉树.给出中序遍历:[1,2,3]和前序遍历:[2,1,3]. 返回如下的树: 2 / \1 3解题思路:1.先序遍历的第一个节点为根节点。2.在中序遍历中定位到根节点的位置,左半部分即为左子树,右半部分即为右子树。3.利用递归思想重构二叉树。已AC的两种代码:/** * Definition of TreeNode:原创 2017-07-17 20:06:54 · 483 阅读 · 0 评论 -
174删除链表中倒数第n个节点
题目描述:给定一个链表,删除链表中倒数第n个节点,返回链表的头节点。样例 给出链表1->2->3->4->5->null和 n = 2.删除倒数第二个节点之后,这个链表将变成1->2->3->5->null. 这个题目相当于在“返回链表倒数第n个节点”的基础上增加功能注意点:1.删除节点p的关键在于要找到p的前一个节点,需要定义一个新的节点保存遍历得到的倒数第n个节点2.其次就是特殊情况的判断。原创 2017-07-09 15:14:22 · 345 阅读 · 0 评论 -
112删除排序链表中的重复元素
题目描述:给定一个排序链表,删除所有重复的元素每个元素只留下一个。样例 给出 1->1->2->null,返回 1->2->null给出 1->1->2->3->3->null,返回 1->2->3->null思路:首先判断当前的节点的值与下一个节点的值是否相等,如果相等,则将下下一个节点赋值给下一个节点。能够直接returnhead吗,显然也是不能的,因为head已经移动到了最后一个节点了。所以原创 2017-07-09 14:25:52 · 216 阅读 · 0 评论 -
451两两交换链表中的节点
题目描述给一个链表,两两交换其中的节点,然后返回交换后的链表。样例 给出 1->2->3->4, 你应该返回的链表是 2->1->4->3。 采用交互值,节点之间的逻辑关系不变 /** * Definition for singly-linked list. * struct ListNode { * int val; * ListNode *next; *原创 2017-07-09 13:35:49 · 216 阅读 · 0 评论 -
166链表倒数第n个节点
题目描述:找到单链表倒数第n个节点,保证链表中节点的最少数量为n。样例:给出链表 3->2->1->5->null和n = 2,返回倒数第二个节点的值1.解题思路:定义两个指针p和q指向头部,p先走N个节点,q不动。然后p走一步,q也走一步,等到p走到终点时,q就恰好指向倒数第n。/** * Definition of ListNode * class ListNode { * publ原创 2017-07-09 12:55:34 · 178 阅读 · 0 评论 -
452删除列表中的元素
452删除列表中的元素 引用块内容特殊情况考虑1.首节点为空if(head==NULL) { return 0; }2.尾节点为空1->null 1 结果应为 null3.1->null->1/** * Definition for singly-linked list. * struct ListNode { *原创 2017-07-08 20:09:52 · 166 阅读 · 0 评论 -
二叉树总结
二叉树学习文档http://blog.csdn.net/luckyxiaoqiang/article/details/7518888/转载 2017-07-17 08:33:42 · 182 阅读 · 0 评论 -
14二分查找
题目比较简单,主要考察二分查找的基本概念,需要特别注意一些特殊情况的处理。如【3 4 5 8 8 8 8 10 13 14】等。、class Solution {public: /** * @param nums: The integer array. * @param target: Target number to find. *原创 2017-06-26 11:32:48 · 235 阅读 · 0 评论 -
167链表求和
题目描述:你有两个用链表代表的整数,其中每个节点包含一个数字。数字存储按照在原来整数中相反的顺序,使得第一个数字位于链表的开头。写出一个函数将两个整数相加,用链表形式返回和。样例 给出两个链表 3->1->5->null 和 5->9->2->null,返回 8->0->8->null注意点:如果两个数相加结束之后,进位不为零,此时表示,结果值比原来的链表要更长一位。此时需要单独处理,增加一个节点原创 2017-07-10 22:02:13 · 241 阅读 · 0 评论 -
173链表插入排序
题目描述:用插入排序对链表排序样例 Given 1->3->2->0->null, return 0->1->2->3->null思路:插入排序的基本思想:将一个节点插入到一个有序的序列中。对于链表而言,要依次从待排序的链表中取出一个节点插入到已经排好序的链表中,也就是说,在单链表插入排序的过程中,原链表会截断成两部分,一部分是原链表中已经排好序的节点,另一部分是原链表中未排序的节点,这样就需要在原创 2017-07-10 21:25:46 · 251 阅读 · 0 评论 -
35翻转链表
方法1:将单链表储存为数组,然后按照数组的索引逆序进行反转。方法2:使用三个指针遍历单链表,逐个链接点进行反转。/** * Definition of ListNode * * class ListNode { * public: * int val; * ListNode *next; * * ListNode(int val) {原创 2017-07-08 22:57:08 · 210 阅读 · 0 评论