摘要: 一、题目 1、审题 2、分析 判断所给二叉树是否存在一条从根节点到叶子节点的所有节点值之和为 sum。 二、解答 1、思路: 方法一、 采用递归的方式进行判断。 方法二、 采用 preOrder 的迭代方式进行 DFS 二叉树,若找到, 返回 true。 方法三、 采用 postOrder 的迭代方 阅读全文
posted @ 2018-10-01 18:16 skillking2 阅读(134) 评论(0) 推荐(0) 编辑
摘要: 一、题目 1、审题 2、分析 给出一颗二叉树,求最小高度(根节点到叶节点的最短距离)。 二、解答 1、思路: 方法一、 采用 BFS 层次遍历的方法进行遍历二叉树。同时,若出现叶子节点,则返回当前高度。 方法二、 采用递归。 另外 阅读全文
posted @ 2018-10-01 16:59 skillking2 阅读(132) 评论(0) 推荐(0) 编辑
摘要: 一、题目 1、审题 2、分析 给出一棵二叉树,判断其是否是一棵二叉平衡树。 二、解答 1、思路: 方法一、 采用递归; 每次获取 root 结点的左子树、右子树的高度,比较高度差是否小于等于 1; 同时判断左子树、右子树是否也是二叉平衡树。 方法二、 采用深度优先遍历的方式获取深度,并且获取时比较该 阅读全文
posted @ 2018-10-01 16:18 skillking2 阅读(122) 评论(0) 推荐(0) 编辑
摘要: 一、题目 1、审题 2、分析 给出一个数值有序的链表,将这个链表的节点组成一个二叉平衡树。 二、解答 1、思路: 采用的是二分查找的思想,利用递归进行实现。 技巧:利用两个指针, slow 每次向前移动一个单位,fast 每次向前移动两个单位,当 fast 为空 或 fast 为要查找的元素时,此时 阅读全文
posted @ 2018-10-01 15:45 skillking2 阅读(70) 评论(0) 推荐(0) 编辑
摘要: 一、题目 1、审题 2、分析 给出一个有序的不重复的整形数组,组成一个二路平衡二叉树(左右子树高度差不超过1)。 二、解答 1、思路: 方法一、 采用递归的方式。(像二分查找) ①、为了保持平衡,查找数组的下标中间的数 nums[mid],作为 root; ②、(0, mid - 1) 作为 roo 阅读全文
posted @ 2018-10-01 12:09 skillking2 阅读(119) 评论(0) 推荐(0) 编辑
摘要: 一、题目 1、审题 2、分析 给出一个二叉树,从下往上输出每一层的节点值。 二、解答 1、思路: 方法一、BFS 利用一个队列进行层次遍历,同时 List 进行插入时,利用 add(index, val) 方法, index 指定插入的 List 的下标。 方法二、DFS 采用递归进行层次遍历,从上 阅读全文
posted @ 2018-10-01 11:08 skillking2 阅读(95) 评论(0) 推荐(0) 编辑
摘要: 一、题目 1、审题 2、分析 给出一个不含有重复节点值的二叉树的中序、后序遍历序列,求原二叉树的序列。 二、解答 1、思路: 方法一、 采用递归的方式还原二叉树。 ①、后序遍历的末尾节点为 root 节点,root 节点值在 中序遍历中的节点下标为 inIndex; ②、则中序遍历的 (0, inI 阅读全文
posted @ 2018-10-01 10:31 skillking2 阅读(121) 评论(0) 推荐(0) 编辑