自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(26)
  • 收藏
  • 关注

原创 lintcode 二叉查找树总结

一次次的做题,然后一次次的认识到自己知识的不足,好多其他同学一看思路就会的题我却做不出来,还有很多知道思路却写不出来的题,感觉挺难受的,都怪没好好学习......课程快结束了,在最后的几次课,继续加油好好听吧.

2017-05-21 21:25:47 182

原创 lintcode convert bst to greater tree

1.Given a Binary Search Tree (BST), convert it to a Greater Tree such that every key of the original BST is changed to the original key plus sum of all keys greater than the original key in BST2.英

2017-05-21 20:46:24 184

原创 lintcode 85 在二叉树中插入节点

1.给定一棵二叉查找树和一个新的树节点,将节点插入到树中。你需要保证该树仍然是一棵二叉查找树。2.利用二叉查找树的特性,根据插入节点的值和根节点的值进行比较,若比根节点的值小则在根的左子树上插入,否则在右子树上插入。3./** * Definition of TreeNode: * class TreeNode { * public: *     i

2017-05-21 20:40:10 344

原创 lintcode 二叉树总结

二叉树总结   写了差不多两个星期的二叉树专题,由于c++的基础差,所以大部分都是参考的别人的或者是百度的,然后再自己一遍遍的看代码,自己也试着写过几个代码,例如写完前序遍历后,自己模仿着试着写中序和后序遍历,勉强能写下来,但是距离能自己写出代码来差很远,所以说这几个代码还有多次学习,不断加强自己。

2017-04-23 21:26:47 163

原创 lintcode 69 二叉树的层次遍

1.给出一棵二叉树,返回其节点值的层次遍历(逐层从左往右访问)2.将每一层得数据都存到队列中3./** * Definition of TreeNode: * class TreeNode { * public: *     int val; *     TreeNode *left, *right; *     TreeNode(int val) { *  

2017-04-23 21:02:48 290

原创 lintcode 453 将二叉树拆分成链表

1.将一棵二叉树按照前序遍历拆解成为一个假链表。所谓的假链表是说,用二叉树的 right 指针,来表示链表中的 next 指针2.将一棵二叉树遍历然后存到一棵树里,这棵树是斜树,所有节点的左子树都是NULL3./** * Definition of TreeNode: * class TreeNode { * public: *     int val; *     T

2017-04-23 20:25:35 229

原创 lintcode 375 克隆二叉树

1.给定一个二叉树,返回一个他的 克隆品 。2.创建一个新的根节点,赋值给节点,然后在相同的位置赋给相同的值3./** * Definition of TreeNode: * class TreeNode { * public: *     int val; *     TreeNode *left, *right; *     TreeNode(int val)

2017-04-23 20:24:24 324

原创 lintcode 469 等价二叉树

1.检查两棵二叉树是否等价。等价的意思是说,首先两棵二叉树必须拥有相同的结构,并且每个对应位置上的节点上的数都相等。2.判断树的结构,左右子树是否相同3./** * Definition of TreeNode: * class TreeNode { * public: *     int val; *     TreeNode *left, *right; *  

2017-04-23 20:17:17 175

原创 lintcode 175 翻转二叉树

1.翻转一棵二叉树2.分别翻转左子树和右子树,再将子树的子树翻转3./** * Definition of TreeNode: * class TreeNode { * public: *     int val; *     TreeNode *left, *right; *     TreeNode(int val) { *         this->va

2017-04-23 20:14:40 191

原创 lintcode 155 二叉树的最小深度

1.给定一个二叉树,找出其最小深度。二叉树的最小深度为根节点到最近叶子节点的距离2.递归方法,类似于最大深度3./** * Definition of TreeNode: * class TreeNode { * public: *     int val; *     TreeNode *left, *right; *     TreeNo

2017-04-23 19:23:50 231

原创 lintcode 97 二叉树的最大深度

1.给定一个二叉树,找出其最大深度。二叉树的深度为根节点到最远叶子节点的距离。2.求左右子树的深度,取二者较大者加1即是树的深度3./** * Definition of TreeNode: * class TreeNode { * public: *     int val; *     TreeNode *left, *right; *

2017-04-23 19:10:03 194

原创 lintcode 68 二叉树的后序遍历

1.给出一棵二叉树,返回其节点值的后序遍历。2.同前面两个3./** * Definition of TreeNode: * class TreeNode { * public: *     int val; *     TreeNode *left, *right; *     TreeNode(int val) { *         this->val =

2017-04-23 18:33:40 205

原创 lintcode 67 二叉树的中序遍历

1.给出一棵二叉树,返回其中序遍历2.前序遍历复制过来3.代码/** * Definition of TreeNode: * class TreeNode { * public: *     int val; *     TreeNode *left, *right; *     TreeNode(int val) { *         this->val

2017-04-20 17:06:58 175

原创 lintcode 66 二叉树的前序遍历

1.给出一棵二叉树,返回其节点值的前序遍历。2.用递归方法前序遍历二叉树,存在vector中,返回值3.代码/** * Definition of TreeNode: * class TreeNode { * public: *     int val; *     TreeNode *left, *right; *     TreeNode(int val)

2017-04-20 16:45:30 160

原创 lintcode 链表专题总结

总结   时隔这么长时间又再次写起了c++程序,说实话,我的内心是忐忑的,回想大一时,刚进入大学,贪玩导致了各科学习都没有跟上,尤其是c++,学的可谓是一塌糊涂,当然也就得到了一个非常低的分数,当大一的c++结课是,我也说不出心中是欣喜还是失落.欣喜于远离了这门课,失落于荒废了大一c++的课程.     当大二选课的时候,在我的选课单里出现了一门名叫数据结构的课程,这门课程的老师依然是大一

2017-03-31 22:30:51 111

原创 lintcode 96 链表划分

1.给定一个单链表和数值x,划分链表使得所有小于x的节点排在大于等于x的节点之前。你应该保留两部分内链表节点原有的相对顺序。2.完全没有思路..........3./** * Definition of ListNode * class ListNode { * public: *     int val; *     ListNode *nex

2017-03-31 22:18:31 205

原创 lintcode 452 删除链表中的元素

1.删除链表中等于给定值val的所有节点。2.遍历链表,遇到值为val的点删除....(覆盖掉)3./** * Definition for singly-linked list. * struct ListNode { *     int val; *     ListNode *next; *     ListNode(int x) : val(x), next(N

2017-03-31 22:13:56 158

原创 lintcode 372 在o(1)时间复杂度删除链表节点

1.给定一个单链表中的一个等待被删除的节点(非表头或表尾)。请在在O(1)时间复杂度删除该链表节点。2.用node的下一个节点来覆盖掉要删除的node,然后释放掉node以前的下一个节点的空间。3./** * Definition of ListNode * class ListNode { * public: *     int val; *     ListNode

2017-03-31 22:10:31 139

原创 lintcode 35 翻转链表

1.翻转一个链表2.尾插法,创建dummy保存head的地址,将创建的temp保存到head->next的地址,这样就让head下移,然后指回原来的地址就可以实现链表的翻转3./** * Definition of ListNode *  * class ListNode { * public: *     int val; *     ListNode *ne

2017-03-31 22:05:48 179

原创 lintcode 166 链表倒数第n个节点

1.找到单链表倒数第n个节点,保证链表中节点的最少数量为n。2.创建两个指向head的指针p q,让p遍历,p先开始移动,p走到第n-1个节点时p q 一起往后移动,这时候当p指向最后一个节点的时候,q就指向了倒数第n个节点的位置,这时候返回q就可以了。(参考同学的)3./** * Definition of ListNode * class ListNode { * pu

2017-03-31 19:16:44 145

原创 lintcode 173 链表插入排序

1.用插入排序对链表排序2.小的节点前移,大的节点后移3./** * Definition of ListNode * class ListNode { * public: *     int val; *     ListNode *next; *     ListNode(int val) { *         this->val = val; *

2017-03-31 19:05:25 340

原创 lintcode 165 合并两个排序链表

1.将两个排序链表合并为一个新的排序链表2.遍历两个链表的公共长度,根据节点值的大小来改变每次节点的连接,然后判断哪条链表还有剩余,最后将较长链表的剩余部分追加到节点的后面3./** * Definition of ListNode * class ListNode { * public: *     int val; *     ListNode *next;

2017-03-31 18:54:24 223

原创 lintcode 167 链表求和

1.你有两个用链表代表的整数,其中每个节点包含一个数字。数字存储按照在原来整数中相反的顺序,使得第一个数字位于链表的开头。写出一个函数将两个整数相加,用链表形式返回和。2.完全没有思路啊.........................百度百度3.通过的代码/** * Definition for singly-linked list. * struct ListNode {

2017-03-31 18:35:05 329

原创 lintcode 174 删除链表中倒数第n个节点

1.给定一个链表,删除链表中倒数第n个节点,返回链表的头节点。2.head先走了n步,这样head和temp之间相差n个节点,然后head和temp同时往后移动,当head移动到NULL的时候,temp就移动到了倒数第n+1个节点的位置,之时候改变temp->next将他指向他的下一个节点的下一个节点,于是就删除了第n个节点。3.通过的代码/** * Definitio

2017-03-31 18:19:15 156

原创 lintcode 112 删除排序链表中的重复元素

1.给定一个排序链表,删除所有重复的元素每个元素只留下一个。2.思路:判断当前节点和next节点的关系,若相同则删除后一节点,同事temp后移,继续比较节点的关系3.通过的代码/** * Definition of ListNode * class ListNode { * public: *     int val; *     ListNode *next;

2017-03-31 17:33:05 180

原创 lintcode 451 两两交换链表中的节点

1. 给一个链表,两两交换其中的节点,然后返回交换后的链表。   2.两两交换两个节点所存放的元素   3.通过的代码/** * Definition for singly-linked list. * struct ListNode { *     int val; *     ListNode *next; *     ListNode(int x) :

2017-03-31 17:30:07 217

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除