Golang Leetcode 450. Delete Node in a BST.go
时间:2022-06-19
本文章向大家介绍Golang Leetcode 450. Delete Node in a BST.go,主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
版权声明:原创勿转 https://blog.csdn.net/anakinsun/article/details/89175007
思路
递归操作,如果key值小于root,从左子树删除,大于root,从右子树删除,否则就删除root节点
code
type TreeNode struct {
Val int
Left *TreeNode
Right *TreeNode
}
func deleteNode(root *TreeNode, key int) *TreeNode {
if root == nil {
return nil
}
if key < root.Val { //如果key小于root,从左子树删除
root.Left = deleteNode(root.Left, key)
} else if key > root.Val { //如果key大于root,从右子树删除
root.Right = deleteNode(root.Right, key)
} else { //删除root节点
if root.Left == nil {
return root.Right
}
if root.Right == nil {
return root.Left
}
root.Val = findMin(root.Right)
root.Right = deleteNode(root.Right, root.Val)
}
return root
}
func findMin(root *TreeNode) int {
for root.Left != nil {
root = root.Left
}
return root.Val
}
- 回溯法算法框架
- 手机支付每天限额500块钱?“我刷你”和“你刷我”限额不一样
- 原始UDP封包发送
- Elasticsearch——Rest API中的常用用法
- strlen函数,strcat函数,strcpy函数,strncpy函数,strcmp函数
- Elasticsearch——多索引的使用
- 路由跟踪技术
- 手把手教你编写Logstash插件
- ping 实现设计---ICMP
- Elasticsearch增删改查 之 —— mget多文档查询
- Elasticsearch 之 数据索引
- AngularJS 国际化——Angular-translate
- MFC中注释含义
- Elasticsearch Span Query跨度查询
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- 三数之和
- 更接近的三数之和
- 基于NXP i.MX28 MPU的疫情监控平台3-监控平台实现
- 基于NXP i.MX28 MPU的疫情监控平台2-Qt环境搭建
- 基于NXP i.MX28 MPU的疫情监控平台1-交叉编译环境搭建
- API接口设计规范
- 陶瓷PCB电路板到底好在哪?
- Mysql常用函数——告别复杂sql
- Spring Boot读取配置文件的几种方式
- python菜鸟教程 | if else 判断
- Java 语言中十大“坑爹”功能!
- R语言生存分析可视化分析
- 全平台轻量开源verilog仿真工具iverilog+GTKWave使用教程
- R语言时间序列和ARIMA模型预测拖拉机销售的制造案例研究
- Windows10下安装linux子系统学习笔记