leetcode做题笔记124. 二叉树中的最大路径和

这篇具有很好参考价值的文章主要介绍了leetcode做题笔记124. 二叉树中的最大路径和。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

二叉树中的 路径 被定义为一条节点序列,序列中每对相邻节点之间都存在一条边。同一个节点在一条路径序列中 至多出现一次 。该路径 至少包含一个 节点,且不一定经过根节点。

路径和 是路径中各节点值的总和。

给你一个二叉树的根节点 root ,返回其 最大路径和 。

思路一:递归

int ans;
int dfs(struct TreeNode*root){
    if(root==NULL)return 0;
    int left = fmax(0,dfs(root->left));
    int right = fmax(0,dfs(root->right));
    ans = fmax(ans,left+right+root->val);

    return fmax(left,right)+root->val;

}



int maxPathSum(struct TreeNode* root){ 
    ans = INT_MIN;
    dfs(root);
    return ans;
}

分析:

本题要向下不断递归二叉树,将左右子树中最大值设为ans最后输出ans即最大路径和,ans先设置为int_min方便后续操作,dfs函数返回fmax(left,right)+root->val;

总结:

本题考察递归查找路径问题,将二叉树递归调用左右子树操作熟悉后可解决文章来源地址https://www.toymoban.com/news/detail-691181.html

到了这里,关于leetcode做题笔记124. 二叉树中的最大路径和的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 算法---二叉树中的最大路径和

    二叉树中的 路径 被定义为一条节点序列,序列中每对相邻节点之间都存在一条边。同一个节点在一条路径序列中 至多出现一次 。该路径 至少包含一个 节点,且不一定经过根节点。 路径和 是路径中各节点值的总和。 给你一个二叉树的根节点 root ,返回其 最大路径和 。 示

    2024年02月11日
    浏览(28)
  • 力扣hot100 二叉树中的最大路径和 递归

    Problem: 124. 二叉树中的最大路径和 👨‍🏫 参考思路 时间复杂度: O ( n ) O(n) O ( n ) 空间复杂度: O ( n ) O(n) O ( n )

    2024年01月18日
    浏览(28)
  • day20 最大的二叉树 合并二叉树 二叉搜索树中的搜索 验证二叉搜索树

    题目链接:654 最大二叉树 题意 根据不重复的整数数组nums构建最大的二叉树 ,根节点是数组中的最大值,最大值左边的子数组构建左子树,最大值右边的子数组构建右子树 nums数组中最少含有1个元素,并且nums中的元素数值均大于等于0 递归  递归三部曲: 1)确定递归函数的

    2024年01月21日
    浏览(32)
  • 算法刷题Day 20 最大二叉树+合并二叉树+二叉搜索树中的搜索+验证二叉搜索树

    递归 递归 迭代 递归 迭代 遇到两个坑的地方: 递归的时候,不能光验证左子树的根节点小于当前根节点,右子树的根节点大于但当前根节点,别忘了左子树上的每一个节点都要求比根节点要小,右子树上的每一个节点都要求比根节点大。 根节点跟左(右)子树中的某一个节

    2024年02月16日
    浏览(31)
  • leetcode做题笔记111. 二叉树的最小深度

    给定一个二叉树,找出其最小深度。 最小深度是从根节点到最近叶子节点的最短路径上的节点数量。 说明: 叶子节点是指没有子节点的节点。 本题与求二叉树最大深度的题很像,先判断根节点,再递归看左右子树最小值返回最小深度,由于根节点若在的话至少有一个节点所

    2024年02月11日
    浏览(31)
  • leetcode做题笔记107. 二叉树的层序遍历 II

    给你二叉树的根节点  root  ,返回其节点值  自底向上的层序遍历  。 (即按从叶子节点所在层到根节点所在的层,逐层从左向右遍历) 本题要求二叉树的层序遍历,并且是从下至上的层序遍历,可以考虑先按照从上至下的层序遍历先将层序遍历结果放到数组中,再对每层

    2024年02月11日
    浏览(31)
  • leetcode做题笔记106. 从中序与后序遍历序列构造二叉树

    给定两个整数数组  inorder  和  postorder  ,其中  inorder  是二叉树的中序遍历,  postorder  是同一棵树的后序遍历,请你构造并返回这颗  二叉树  。 本题要利用二叉树的中序遍历和后序遍历来确定二叉树,即可不断创建新二叉树将后序遍历的右子树赋值给新二叉树,不断

    2024年02月11日
    浏览(31)
  • 【刷题笔记8.11】LeetCode题目:二叉树中序遍历、前序遍历、后序遍历

    (一)题目描述 给定一个二叉树的根节点 root ,返回 它的 中序 遍历 。 (二)分析 二叉树中序遍历,遍历顺序:左节点 -》 根节点 -》 右节点 ( 注意:二叉树的前、中、后序遍历就是以根为基准,前序遍历根在最前面,中序遍历根在中间,后序遍历根在最后面 ) (三)

    2024年02月13日
    浏览(26)
  • 【Leetcode60天带刷】day21二叉树——530.二叉搜索树的最小绝对差 ,501.二叉搜索树中的众数 ,236. 二叉树的最近公共祖先

    530. 二叉搜索树的最小绝对差 给你一个二叉搜索树的根节点  root  ,返回  树中任意两不同节点值之间的最小差值  。 差值是一个正数,其数值等于两值之差的绝对值。 示例 1: 示例 2: 提示: 树中节点的数目范围是  [2, 104] 0 = Node.val = 105 那么二叉搜索树采用中序遍历,

    2024年02月10日
    浏览(36)
  • leetcode做题笔记215. 数组中的第K个最大元素

    给定整数数组  nums  和整数  k ,请返回数组中第  k  个最大的元素。 请注意,你需要找的是数组排序后的第  k  个最大的元素,而不是第  k  个不同的元素。 你必须设计并实现时间复杂度为  O(n)  的算法解决此问题。 示例 1: 示例 2: c++解法 本题要求第k大的元素,利用

    2024年02月05日
    浏览(39)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包