golang 98.验证二叉搜索树

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了golang 98.验证二叉搜索树相关的知识,希望对你有一定的参考价值。

/**
 * Definition for a binary tree node.
 * type TreeNode struct {
 *     Val int
 *     Left *TreeNode
 *     Right *TreeNode
 * }
 */
func isValidBST(root *TreeNode) bool {
    return isValid(root, -1<<63, 1<<63 - 1)
}
func isValid(root *TreeNode, min, max int) bool {
	if root == nil {
		return true
	}
	if root.Val <= min {
		return false
	}
	if root.Val >= max {
		return false
	}
	return isValid(root.Left, min, root.Val) && isValid(root.Right, root.Val, max)
}
/**
 * Definition for a binary tree node.
 * type TreeNode struct {
 *     Val int
 *     Left *TreeNode
 *     Right *TreeNode
 * }
 */
func isValidBST(root *TreeNode) bool {
    inorder := inOrder(root)
	for i:=1;i<len(inorder) ;i++ {
		if inorder[i-1] >= inorder[i] {
			return false
		}
	}
	return true
}
func inOrder(root *TreeNode) []int {
	if root == nil {
		return []int{}
	}
	return append(append(inOrder(root.Left), root.Val), inOrder(root.Right)...)
}

golang 日志打印后程序直接退出

参考技术A 在一段 http get 的程序中,如果出现错误,打印日志后会导致程序退出。

将 log.Fatal 修改为 log.Println 即可解决问题。

感觉一个函数做了本不该它做的事情,有些好奇,golang 设计者的设计哲学。

以上是关于golang 98.验证二叉搜索树的主要内容,如果未能解决你的问题,请参考以下文章

LeetCode:验证二叉搜索树98

LeetCode 98. 验证二叉搜索树

LeetCode 98. 验证二叉搜索树

刷题-力扣-98. 验证二叉搜索树

Leetcode 98.验证二叉搜索树

98. 验证二叉搜索树