自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 二叉树的前序遍历

一、问题描述给出一棵二叉树,返回其节点值的前序遍历。二、样例给出一棵二叉树 {1,#,2,3}, 1 \ 2 / 3 返回 [1,2,3].三、思路在函数外重新定义一个前序遍历函数,在另一个函数中调用,在写前序遍历的函数时,运用递归。四、代码/** * Definition of TreeNode:

2017-05-01 22:27:34 212

原创 二叉树的路径和

一、问题描述给定一个二叉树,找出所有路径中各节点相加总和等于给定 目标值 的路径。一个有效的路径,指的是从根节点到叶节点的路径。二、样例给定一个二叉树,和 目标值 = 5: 1 / \ 2 4 / \ 2 3返回:[ [1, 2, 2], [1, 4]]三、思路对每条路径进行加和,与给定的值

2017-05-01 22:00:01 361

原创 二叉树的最小深度

一、问题描述给定一个二叉树,找出其最小深度。二叉树的最小深度为根节点到最近叶子节点的距离。二、样例给出一棵如下的二叉树:        1     /     \    2       3          /    \        4      5  这个二叉树的最小深度为 2三、思路首先是空树

2017-05-01 18:36:49 173

原创 把排序数组转换为高度最小的二叉搜索树

一、问题描述给一个排序数组(从小到大),将其转换为一棵高度最小的排序二叉树。二、样例给出数组 [1,2,3,4,5,6,7], 返回 4 / \ 2 6 / \ / \1 3 5 7三、思路    先判断空时的情况,若非空,就将排序的数组中间的一个节点作为根节点,左子树比根节点值小,右子树比根节点值大。四

2017-05-01 18:23:18 265

原创 二叉树的层次遍历

一、问题描述给出一棵二叉树,返回其节点值的层次遍历(逐层从左往右访问)二、样例给一棵二叉树 {3,9,20,#,#,15,7} : 3 / \9 20 / \ 15 7返回他的分层遍历结果:[ [3], [9,20], [15,7]]三、思路将每层的节点入对然后依次出队,再将出队节点的下一层保存,并将出队节点存入向

2017-04-29 22:47:46 175

原创 等价二叉树

一、问题描述检查两棵二叉树是否等价。等价的意思是说,首先两棵二叉树必须拥有相同的结构,并且每个对应位置上的节点上的数都相等。二、样例 1 1 / \ / \ 2 2 and 2 2 / /4 4就是两棵等价的二叉树。 1

2017-04-27 22:43:12 228

原创 克隆二叉树

一、问题描述深度复制一个二叉树。给定一个二叉树,返回一个他的 克隆品 。二、样例给定一个二叉树: 1 / \ 2 3 / \4 5返回其相同结构相同数值的克隆二叉树: 1 / \ 2 3 / \4 5三、思路先判断是否是空,再通过递归来克隆左右子树。四、代码/*

2017-04-27 22:23:56 146

原创 二叉树的最大深度

一、问题描述给定一个二叉树,找出其最大深度。二叉树的深度为根节点到最远叶子节点的距离。二、样例给出一棵如下的二叉树: 1 / \ 2 3 / \ 4 5这个二叉树的最大深度为3.三、思路从根节点出发开始计算,如果root==NULL, 高度为0;否则,分别计算左子树的高度;右子树的高度;返回max(左子树

2017-04-16 14:19:03 146

原创 二叉树的最大节点

一、问题描述在二叉树中寻找值最大的节点并返回。二、样例给出如下一棵二叉树: 1 / \ -5 2 / \ / \0 3 -4 -5 返回值为 3 的节点。三、思路若树为空,则返回空;若不为空,则遍历找出最大数。四、代码lass Solution {public:    /**     *

2017-04-16 14:08:40 1176

原创 链表——总结

有关链表的题目感觉还是比较有趣的,就是需要考虑方方面面可能出现的情况,要考虑周全一些。     有些题目比较简单也容易想,但也有些题目需要脑洞大开,实在想不到就只能请教同学了,但幸好最后还是搞得比较明白了。     调程序不能着急,需要静下心来仔细思考,看是不是思路不对还是情况没有考虑完整,每调出一个程序心情都十分美丽~

2017-04-05 20:51:03 180

原创 删除链表中的元素

1.问题描述删除链表中等于给定值的所有节点2.样例给出链表 1->2->3->3->4->5->3, 和 val = 3, 你需要返回删除3之后的链表:1->2->4->5。3.思路遍历链表中节点,对于与val值相等的节点,覆盖删除将指针指向下一个节点。4.代码/** * Definition for singly-linke

2017-04-05 20:38:16 175

原创 链表求和

1.问题描述你有两个用链表代表的整数,其中每个节点包含一个数字。数字存储按照在原来整数中相反的顺序,使得第一个数字位于链表的开头。写出一个函数将两个整数相加,用链表形式返回和。2.样例给出两个链表 3->1->5->null 和 5->9->2->null,返回 8->0->8->null3.思路当链表中有空表时,直接返回,当两链表都不是空表时,正常加法,如果有一个链表比另一个

2017-04-05 20:10:51 461

原创 链表划分

问题描述:          给定一个单链表和数值x,划分链表使得所有小于x的节点排在大于等于x的节点之前。你应该保留两部分内链表节点原有的相对顺序。样例:          给定链表 1->4->3->2->5->2->null,并且 x=3,返回 1->2->2->4->3->5->null思路:          新建两个链表还有两个指针,

2017-04-05 20:07:33 137

原创 合并两个排序链表

问题描述:将两个排序链表合并为一个新的排序链表样例给出 1->3->8->11->15->null,2->null, 返回1->2->3->8->11->15->null。思路:分为链表为空与不为空讨论时,新建一个链表,依次从头节点开始比较移动。代码:/** * Definition of ListNode *

2017-04-05 19:39:05 156

原创 链表插入排序

问题描述:用插入排序对链表排序样例:Given 1->3->2->0->null, return 0->1->2->3->null思路:建立了一个新链表,比较大小,然后if语句,还得用到temp暂存。代码:/** * Definition of ListNode * class ListNode

2017-04-04 21:40:51 147

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

问题描述:给一个链表,两两交换其中的节点,然后返回交换后的链表。样例:给出 1->2->3->4, 你应该返回的链表是 2->1->4->3。思路:(注意当节点数有单数时不用交换)建立一个新链表还有两个指针,进行交换。代码:/** * Definition for singly-linked list. * struct ListNode { *     i

2017-04-04 21:17:04 145

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

问题描述:给定一个排序链表,删除所有重复的元素每个元素只留下一个。样例:给出 1->1->2->null,返回 1->2->null给出 1->1->2->3->3->null,返回 1->2->3->nul思路: 一旦两节点重复,删掉p2,注意连续三个及以上节点值相同的情况。代码:/** * Definition of Li

2017-04-04 21:03:30 173

原创 翻转链表

问题描述:翻转一个链表样例:给出一个链表1->2->3->null,这个翻转后的链表为3->2->1->null思路:       新建链表,进行赋值交换,注意temp暂存。代码:/** * Definition of ListNode *  * class ListNode { * public:

2017-04-04 20:50:49 118

原创 链表倒数第n个节点

问题描述:找到单链表倒数第n个节点,保证链表中节点的最少数量为n。样例:给出链表 3->2->1->5->null和n = 2,返回倒数第二个节点的值1.思路:遍历得到链表的总长度,总长度减去n,就可以得到它在正数第几个。代码:/** * Definition of ListNode * class ListNode { 

2017-04-04 20:49:13 193

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

问题描述:给定一个链表,删除链表中倒数第n个节点,返回链表的头节点。注意事项:链表中的节点个数大于等于n样例:给出链表1->2->3->4->5->null和 n = 2.删除倒数第二个节点之后,这个链表将变成1->2->3->5->null.思路:       主要用两个指针,先让第一个指针指向第n个节点时,让第二个

2017-04-04 20:42:55 130

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

问题描述:给定一个单链表中的一个等待被删除的节点(非表头或表尾)。在O(1)时间复杂度删除该链表节点。样例给定 1->2->3->4,和节点 3,删除 3 之后,链表应该变为 1->2->4。解题思路:首先把被删除的节点覆盖给要删除的节点,再删除该节点。代码: Definition of ListNode  class ListNode

2017-04-04 20:21:49 115

空空如也

空空如也

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

TA关注的人

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