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
}

运行结果

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

相关推荐
疯狂的喵5 小时前
C++编译期多态实现
开发语言·c++·算法
scx201310045 小时前
20260129LCA总结
算法·深度优先·图论
2301_765703145 小时前
C++中的协程编程
开发语言·c++·算法
m0_748708055 小时前
实时数据压缩库
开发语言·c++·算法
小魏每天都学习5 小时前
【算法——c/c++]
c语言·c++·算法
智码未来学堂6 小时前
探秘 C 语言算法之枚举:解锁解题新思路
c语言·数据结构·算法
Halo_tjn6 小时前
基于封装的专项 知识点
java·前端·python·算法
春日见6 小时前
如何避免代码冲突,拉取分支
linux·人工智能·算法·机器学习·自动驾驶
副露のmagic6 小时前
更弱智的算法学习 day59
算法
u0109272717 小时前
C++中的RAII技术深入
开发语言·c++·算法