golang中怎么利用leetcode实现一个合法二叉搜索树
发表于:2026-11-03 作者:千家信息网编辑
千家信息网最后更新 2026年11月03日,这篇文章将为大家详细讲解有关golang中怎么利用leetcode实现一个合法二叉搜索树,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。实现一个函数,检
千家信息网最后更新 2026年11月03日golang中怎么利用leetcode实现一个合法二叉搜索树
这篇文章将为大家详细讲解有关golang中怎么利用leetcode实现一个合法二叉搜索树,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。
实现一个函数,检查一棵二叉树是否为二叉搜索树。
示例 1:
输入:
2
/ \
1 3
输出: true
示例 2:
输入:
5
/ \
1 4
/ \
3 6
输出: false
解释: 输入为: [5,1,4,null,null,3,6]。
根节点的值为 5 ,但是其右子节点值为 4 。解题思路
1,如果没有叶子节点返回true
2,如果左子树非空,需要返回前缀节点路径上的最大值,且比根节点小
3,如果右子树非空,需要返回后缀节点路径上的最小值,且比根节点大
4,左右子树都是合法的
5,需要注意,不是前缀节点是前缀节点路径最大值
测试用例
[5,1,4,null,null,3,6]
[5,14,null,1]
代码实现
/*** Definition for a binary tree node.* type TreeNode struct {* Val int* Left *TreeNode* Right *TreeNode* }*/func isValidBST(root *TreeNode) bool {if root==nil || (root.Left==nil && root.Right==nil) {return true}valid:=trueif root.Left!=nil{l:=pre(root.Left)if l>=root.Val{valid=false}fmt.Println(l,root)}if root.Right!=nil{r:=suc(root.Right)if r<=root.Val{valid=false}fmt.Println(r,root)}return valid && isValidBST(root.Left) && isValidBST(root.Right)}func pre(root * TreeNode) int{//root !=nilmax:=root.Valcur:=rootfor cur!=nil{if cur.Right!=nil{cur=cur.Rightif maxmax=cur.Val}}else{cur=cur.Leftif cur!=nil && maxmax=cur.Val}}}return max}func suc(root*TreeNode)int{min:=root.Valcur:=rootfor cur!=nil{if cur.Left!=nil{cur=cur.Leftif min >cur.Val{min=cur.Val}}else{cur=cur.Rightif cur!=nil && min >cur.Val{min=cur.Val}}}return min}
关于golang中怎么利用leetcode实现一个合法二叉搜索树就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。
节点
合法
搜索
前缀
路径
子树
输入
最大
内容
文章
更多
最大值
知识
示例
篇文章
输出
不错
最小
代码
函数
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
互联网高科技
小米移动互联网科技园
中国互联网科技工作委员会毛军
科技创新与互联网经济
互联网科技资迅
互联网金融 金融科技
齐家互联网科技
云电互联网科技
成都玖崟互联网科技有限公司乐商圈怎么样
互联网还是高科技吗
千方科技属于互联网企业吗
青岛科技大学互联网大赛研究生
美国互联网科技实力
互联网企业科技类企业如何做账
21世纪互联网科技成就
陕西云淼互联网科技公司
工业互联网科技创业
互联网界的黑科技
云南互联网科技学费
武汉亿视互联网科技有限公司
互联网核心科技是什么
紫鲸互联网科技
广州互联网络科技有限公司
易通互联网络科技有限公司
新浪科技互联网
宁夏众和广鑫互联网科技有限公司
栖莱科技互联网股份有限公司
佛山市翊博互联网络科技有限公司
用友工业互联网科技发展
青岛互联网科技园