摘要: 该题是要找出树的最大深度,代码如下: END 阅读全文
posted @ 2018-04-24 09:13 sysu_kww 阅读(80) 评论(0) 推荐(0) 编辑
摘要: 这道题重点是要明白平衡二叉树的定义。题目中给出的定义就是左右子树的高度不超过一。 参考了以下链接: https://blog.csdn.net/DERRANTCM/article/details/47414041 代码如下: END 阅读全文
posted @ 2018-04-23 17:42 sysu_kww 阅读(116) 评论(0) 推荐(0) 编辑
摘要: 该题题意为让小于指定值的节点位于链表前面,大于等于指定值的节点在链表后面,且保留原有顺序。 在这里我们首先为链表增加一个伪链表头prehead,这个链表头的next指向head。 定义三个指针, 1)插入指针insertnode为空 2)遍历指针cur指向head 3)指向遍历指针前面节点的指针pr 阅读全文
posted @ 2018-04-20 18:52 sysu_kww 阅读(166) 评论(0) 推荐(0) 编辑
摘要: 这道题是要在链表里头判断是否构成一个环,并返回环的开始节点。主要思路是使用快慢指针,如果链表存在环的话,那么快指针到最后是会追上慢指针的。那么,这里关键在于如何判断某个节点就是环的开始节点。 如上图,假设a 点为环开始的地方,b点为快慢指针第一次相遇的地方。由开始到a点距离为 d1 , a 到 b 阅读全文
posted @ 2018-04-19 16:43 sysu_kww 阅读(155) 评论(0) 推荐(0) 编辑
摘要: 该题是检测两棵树是否一样,主要思路是通过递归的方法对树进行中序遍历,比较简单,直接贴上代码: END 阅读全文
posted @ 2018-04-18 09:25 sysu_kww 阅读(98) 评论(0) 推荐(0) 编辑
摘要: 该题需要用一个递增的链表构建一个二叉树。数组的中位数为数的根节点,以中位数为分界,可以将数组分成左子数组以及右子数组,那么左边数组的中位数是左节点的值,右边数组的中位数为右节点的值,以此类推。 所以我们可以想到,首先需要将链表转换为数组,然后直接定位中位数的值为根节点的值,并通过递归的方法分别构造左 阅读全文
posted @ 2018-04-17 13:22 sysu_kww 阅读(131) 评论(0) 推荐(0) 编辑
摘要: 该题是找出所有由根到树叶的所有路径,主要解决思路是二叉树的前序遍历。要注意的是在遍历节点时要判断是否为树叶节点,是的话要将 节点数值 + "->" 的形式加在临时字符串后面, 否则仅仅将 节点数值 加在后面就好了。 代码如下: END 阅读全文
posted @ 2018-04-16 09:01 sysu_kww 阅读(102) 评论(0) 推荐(0) 编辑
摘要: 题意为找出根到树叶节点路径上的值和为指定值的路径集合。主要解决思路是前序遍历,定义一个结果集合以及一个记录路径的List, 当List上的值的和为指定值时,将List加入到结果集当中。 代码如下: END 阅读全文
posted @ 2018-04-13 10:35 sysu_kww 阅读(99) 评论(0) 推荐(0) 编辑
摘要: 这道题是要判断由根到树叶结点的值的和是否存在等于某个值。主要思路是对树进行前序遍历,依次将结点值相加,当到达树叶结点后直接判断是否等于指定值。 代码如下: END 阅读全文
posted @ 2018-04-12 09:20 sysu_kww 阅读(94) 评论(0) 推荐(0) 编辑
摘要: 题目如上,二叉树由根到节点上的值可以组成一个数字,该题是要求所有由根到最终节点的所有路径上的数字进行求和。 解题的主要思路是使用前序遍历,以前面节点的值乘以10再加上当前值的形式进行数字组合,当到达树叶结点的时候总和加上组建好的路径的值。 代码如下: END 阅读全文
posted @ 2018-04-11 10:10 sysu_kww 阅读(126) 评论(0) 推荐(0) 编辑