当前位置: 首页 > news >正文

Golang | Leetcode Golang题解之第450题删除二叉搜索树的节点

题目:

题解:

func deleteNode(root *TreeNode, key int) *TreeNode {var cur, curParent *TreeNode = root, nilfor cur != nil && cur.Val != key {curParent = curif cur.Val > key {cur = cur.Left} else {cur = cur.Right}}if cur == nil {return root}if cur.Left == nil && cur.Right == nil {cur = nil} else if cur.Right == nil {cur = cur.Left} else if cur.Left == nil {cur = cur.Right} else {successor, successorParent := cur.Right, curfor successor.Left != nil {successorParent = successorsuccessor = successor.Left}if successorParent.Val == cur.Val {successorParent.Right = successor.Right} else {successorParent.Left = successor.Right}successor.Right = cur.Rightsuccessor.Left = cur.Leftcur = successor}if curParent == nil {return cur}if curParent.Left != nil && curParent.Left.Val == key {curParent.Left = cur} else {curParent.Right = cur}return root
}

http://www.mrgr.cn/news/40990.html

相关文章:

  • 解决银河麒麟操作系统V10软件包架构不符问题
  • 付费计量系统通用功能(8)
  • 迎国庆,开源完全免费工作流引擎AntFlow 0.9最强版本发布,支持tidb,提升易用性and more...
  • 昇思MindSpore进阶教程--内存复用
  • Stable Diffusion绘画 | 来训练属于自己的模型:炼丹参数调整--步数设置与计算
  • deepin 无线网络搜不到信号
  • 银河麒麟桌面操作系统V10 SP1:取消安装应用的安全授权认证
  • 查缺补漏----程序查询方式和中断方式计算题
  • 如何使用Redisson的布隆过滤器?
  • JavaScript 可视化案例 D3.js Chart.js 使用教程 图表实现 柱状图 饼状图 条形图 折现图等
  • 本科生已不够 AI公司雇佣各领域专家训练大模型
  • Windows 开发工具使用技巧 Visual Studio使用安装和使用技巧 Visual Studio 快捷键
  • 在银河麒麟高级服务器操作系统V10中使用ISO镜像作为本地源
  • 高性价比PCB分板机高速主轴SycoTec 4025 HY
  • 记录Mybatis分页查询排序问题: Encountered unexpected token: “and“ “AND“
  • 付费计量系统通用功能(7)
  • 使用socket编程来实现一个简单的C/S模型(TCP协议)
  • EIP 是什么?
  • 【多线程】多线程(5):死锁,内存可见性
  • Java应用的数据库连接池连接泄露诊断