【代码随想录】算法训练计划18

1、513. 找树左下角的值

题目:
给定一个二叉树的 根节点 root,请找出该二叉树的 最底层 最左边 节点的值。
假设二叉树中至少有一个节点。
在这里插入图片描述

思路:
  • 递归,规则,基本可以自己写出来
var maxDepth int
var res int
func findBottomLeftValue(root *TreeNode) int {
    // 代码一刷,递归,规则
    res = 0
    maxDepth = 0
    di(root, 1)
    return res
}
func di(node *TreeNode, depth int) {
    if node.Left == nil && node.Right == nil {
        if depth > maxDepth {
            maxDepth = depth
            res = node.Val
        }
    }
    if node.Left != nil {
        depth++
        di(node.Left,depth)
        depth--
    }
    if node.Right != nil {
        depth++
        di(node.Right,depth)
        depth--
    }
}

2、112. 路径总和

题目:
给你二叉树的根节点 root 和一个表示目标和的整数 targetSum 。判断该树中是否存在 根节点到叶子节点 的路径,这条路径上所有节点值相加等于目标和 targetSum 。如果存在,返回 true ;否则,返回 false 。
叶子节点 是指没有子节点的节点。
在这里插入图片描述

思路:
  • 前序遍历,中左右, wc 我独立写出来的
  • 路经总和2,求路径大体思路一样,但有个结果我算错了
func hasPathSum(root *TreeNode, targetSum int) bool {
    return qian(root,0,targetSum)
}
func qian(node *TreeNode,ans,targetSum int) bool {
    if node == nil {
        return false
    }
    ans += node.Val
    if node.Left == nil && node.Right == nil {
        if ans == targetSum {
            return true
        }
    }
    return qian(node.Left, ans,targetSum) || qian(node.Right, ans,targetSum)
}

3、

题目:

思路:

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

不之道

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值