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

Golang | Leetcode Golang题解之第538题把二叉搜索树转换为累加树

题目:

题解:

func getSuccessor(node *TreeNode) *TreeNode {
    succ := node.Right
    for succ.Left != nil && succ.Left != node {
        succ = succ.Left
    }
    return succ
}

func convertBST(root *TreeNode) *TreeNode {
    sum := 0
    node := root
    for node != nil {
        if node.Right == nil {
            sum += node.Val
            node.Val = sum
            node = node.Left
        } else {
            succ := getSuccessor(node)
            if succ.Left == nil {
                succ.Left = node
                node = node.Right
            } else {
                succ.Left = nil
                sum += node.Val
                node.Val = sum
                node = node.Left
            }
        }
    }
    return root
}

http://www.kler.cn/a/381956.html

相关文章:

  • 混合式学习平台:企业培训的新选择
  • Go 函数的使用
  • 就业市场变革:AI时代,我们将如何评估人才?
  • 基于SSM+小程序的宿舍管理系统(宿舍1)
  • Python常用脚本集锦
  • 开源办公软件 ONLYOFFICE 深入探索
  • 质数的和与积
  • 什么是ajax,为什么使用ajax?ajax都有哪些优点和缺点?
  • 「Mac畅玩鸿蒙与硬件24」UI互动应用篇1 - 灯光控制小项目
  • 恢复Ubuntu+Windows10双系统安装前状态及分区还原详细步骤
  • L5.【LeetCode笔记】移除链表元素
  • 如何修改远程分支?修改了会影响什么?
  • python中t是什么意思
  • 直播系统搭建教程安装说明
  • IT架构管理
  • SpringBoot在线教育系统:性能监控与优化
  • 项目活动进度计算题
  • arkUI:布局的属性(margin、padding、border、borderRadius)
  • Spring Boot驱动的多维分类知识管理系统
  • 雷池社区版 7.1.0 LTS 发布了
  • U8C表体存货或编码相关的字段赋值不上
  • Pr 视频效果:超级键
  • 文件外发记录监控 | 公司文档外发如何跟踪数据流向?6大策略让文件不再滥发泄密! (2024全面解读)
  • 高效率的快捷回复软件 —— 客服宝聊天助手
  • 搜维尔科技:SenseGlove案例-利用VR触觉技术培训机组人员
  • Netty原来就是这样啊(二)