617. 合并二叉树 Golang实现
摘要:题目描述: 给你两棵二叉树: root1 和 root2 。 想象一下,当你将其中一棵覆盖到另一棵之上时,两棵树上的一些节点将会重叠(而另一些不会)。你需要将这两棵树合并成一棵新二叉树。合并的规则是:如果两个节点重叠,那么将这两个节点的值相加作为合并后节点的新值;否则,不为 null 的节点将直接作
阅读全文
98.验证二叉搜索树 Golang实现「自顶向下」
摘要:题目描述: 给你一个二叉树的根节点 root ,判断其是否是一个有效的二叉搜索树。 有效 二叉搜索树定义如下: 节点的左 子树 只包含 小于 当前节点的数。 节点的右子树只包含 大于 当前节点的数。 所有左子树和右子树自身必须也是二叉搜索树。 输入:root = [5,1,4,null,null,3
阅读全文
105. 从前序与中序遍历序列构造二叉树 Golang实现
摘要:题目描述: 给定两个整数数组 preorder 和 inorder ,其中 preorder 是二叉树的先序遍历, inorder 是同一棵树的中序遍历,请构造二叉树并返回其根节点。 思路分析: 其实每次遍历就是划分左右子树数组,然后同样的递归先得到左右子树的根节点,再依次划分即可。注意下标索引的写
阅读全文
257. 二叉树的所有路径 Golang实现
摘要:题目描述: 给你一个二叉树的根节点 root ,按 任意顺序 ,返回所有从根节点到叶子节点的路径。 叶子节点 是指没有子节点的节点。 输入:root = [1,2,3,null,5] 输出:["1->2->5","1->3"] 思路分析: 这个题一眼回溯,回溯和递归其实也是紧密相关的。 1.确定回溯
阅读全文
107. 二叉树的层序遍历 II Golang实现
摘要:题目描述: 给你二叉树的根节点 root ,返回其节点值 自底向上的层序遍历 。 (即按从叶子节点所在层到根节点所在的层,逐层从左向右遍历) 输入:root = [3,9,20,null,null,15,7] 输出:[[15,7],[9,20],[3]] 思路分析: 这个题主要还是二叉树的层序遍历问
阅读全文
144. 二叉树的遍历「前序、中序、后序」 Golang实现
摘要:题目描述: 给你二叉树的根节点 root ,返回它节点值的 前序 遍历。 思路分析: 递归法: 前序遍历的顺序是中左右的顺序。那么每个子树都是这个顺序,所以可以使用递归进行遍历。递归遍历有3部曲 1.确定递归函数的参数和返回值。 因为返回值要求保存在一个数组中,所以递归函数的参数应该包括树的根节点和
阅读全文