概念
刷题
654. 最大二叉树
617. 合并二叉树
中序遍历
代码优化:
- 不生成新的树,直接修改root1
- 遍历root1,当root1 为空的时候,直接返回root2,不再继续遍历root2
func mergeTrees(root1 *TreeNode, root2 *TreeNode) *TreeNode {
if root1 == nil {return root2}
if root2 == nil {return root1}
root1.Val += root2.Val
root1.Left = mergeTrees(root1.Left, root2.Left)
root1.Right = mergeTrees(root1.Right, root2.Right)
return root1
}
- 二叉搜索树中的搜索
优化:
二叉搜索树是一个有序树:
- 若它的左子树不空,则左子树上所有结点的值均小于它的根结点的值;
- 若它的右子树不空,则右子树上所有结点的值均大于它的根结点的值;
- 它的左、右子树也分别为二叉搜索树
这就决定了,二叉搜索树,递归遍历和迭代遍历和普通二叉树都不一样。
本题,其实就是在二叉搜索树中搜索一个节点。那么我们来看看应该如何遍历。
- 验证二叉搜索树
后序遍历
优化:
二叉搜索树的特性: 中序遍历可以遍历出一个从小到大排序的数组
中序遍历 + 双指针 (preNode: 遍历的前一个节点的指针, node:当前遍历的节点指针)
总结
对于golang获取int类型的最小整数:
在Go语言中,int 类型的最小值取决于你的操作系统和编译器。这是因为 int 类型的长度在不同的平台和编译器中可能会有所不同。在Go语言中,int 通常是32位的,但在某些64位平台上,它也可以是64位的。
为了获取 int 类型能表示的最小值,你可以使用 math 包中的常量:
- 对于32位系统(如果你的
int是32位的,比如在某些32位操作系统上或者通过设置环境变量使得int为32位),你可以使用math.MinInt32。 - 对于64位系统(如果你的
int是64位的,比如在大多数现代操作系统上),你应该使用math.MinInt64。
下面是如何使用这些常量的示例: