Leetcode—1123. 最深叶节点的最近公共祖先【中等】

2025每日刷题(236)

Leetcode---1123. 最深叶节点的最近公共祖先

实现代码

go 复制代码
/**
 * Definition for a binary tree node.
 * type TreeNode struct {
 *     Val int
 *     Left *TreeNode
 *     Right *TreeNode
 * }
 */
func lcaDeepestLeaves(root *TreeNode) *TreeNode {
    type pair struct {
        node *TreeNode
        depth int
    }

    var dfs func(root *TreeNode) pair 
    dfs = func(root *TreeNode) pair {
        if root == nil {
            return pair{nil, 0}
        }

        lt, rt := dfs(root.Left), dfs(root.Right) 
        ld, rd := lt.depth, rt.depth

        if ld > rd {
            return pair{lt.node, ld + 1}
        }
        if ld < rd {
            return pair{rt.node, rd + 1}
        }

        return pair{root, ld + 1}
    }
    return dfs(root).node
}

运行结果

之后我会持续更新,如果喜欢我的文章,请记得一键三连哦,点赞关注收藏,你的每一个赞每一份关注每一次收藏都将是我前进路上的无限动力 !!!↖(▔▽▔)↗感谢支持!

相关推荐
s砚山s18 小时前
代码随想录刷题——二叉树篇(十三)
数据结构·算法
alphaTao18 小时前
LeetCode 每日一题 2026/1/5-2026/1/11
算法·leetcode
山上三树18 小时前
详细介绍 C 语言中的 #define 宏定义
c语言·开发语言·算法
黎雁·泠崖18 小时前
二叉树知识体系全梳理:从基础到进阶一站式通关
c语言·数据结构·leetcode
AI科技星18 小时前
引力与电磁的动力学耦合:变化磁场产生引力场与电场方程的第一性原理推导、验证与统一性意义
服务器·人工智能·科技·线性代数·算法·机器学习·生活
蜕变菜鸟18 小时前
JS的Object.keys()和sort()排序的用法
数据结构·算法
源代码•宸18 小时前
Golang基础语法(go语言error、go语言defer、go语言异常捕获、依赖管理、Go Modules命令)
开发语言·数据库·后端·算法·golang·defer·recover
gravity_w18 小时前
Conda常用命令总结
经验分享·笔记·conda
如果你想拥有什么先让自己配得上拥有19 小时前
算数顺序的逻辑和发展?
算法