这里写自定义目录标题

  • 题目描述
    • 思路
    • 递归

题目描述

寻找二叉树中从任意节点开始的最大不重复路径和
示例:

输入:{1,2,3}
输出:6
原题链接:NC6 二叉树中的最大路径和

思路

拿到这道题第一想法就是递归和动态规划,这没什么好说的,两者大同小异,动态规划能做,但是在树这块还是递归舒服点。

  • 对于一个节点,不能重复的路径限制了该节点的最大贡献是左孩子+根节点或右孩子+根节点
  • 递归每一步:计算左子树和右子树的贡献,并回溯
  • 出口:节点为空

递归

这里肯定是深度遍历dfs,那么我遍历到一个节点之后要干什么呢,一是我要不要走这个节点,二是我走这个节点后走左子树还是右子树。

  • 要不要走:用贡献度区分,贡献度是正的就走,贡献度非正就设为0,认为没走
  • 走左子树还是右子树:回溯的时候谁贡献度大走谁
 private int res=Integer.MIN_VALUE;public int dfs(TreeNode node){if(node == null) return 0;//出口int left=Math.max(dfs(node.left),0);//左子树贡献度,贡献度是0的时候认为不走int right=Math.max(dfs(node.right),0);//右子树贡献度res=Math.max(res,left+right+node.val);//更新最大路径return node.val+Math.max(left,right);//回溯当前节点贡献度}

NC6 二叉树中的最大路径和相关推荐

  1. 124. Binary Tree Maximum Path Sum 二叉树中的最大路径和

    Title 给定一个非空二叉树,返回其最大路径和. 本题中,路径被定义为一条从树中任意节点出发,达到任意节点的序列.该路径至少包含一个节点,且不一定经过根节点. 示例 1: 输入: [1,2,3] 1 ...

  2. Leetcode 124.二叉树中的最大路径和

    124.二叉树中的最大路径和 给定一个非空二叉树,返回其最大路径和. 本题中,路径被定义为一条从树中任意节点出发,达到任意节点的序列.该路径至少包含一个节点,且不一定经过根节点. 示例 1: 输入: ...

  3. [LeetCode]124. 二叉树中的最大路径和(java实现)递归

    [LeetCode]124. 二叉树中的最大路径和(java实现)递归 1. 题目 2. 读题(需要重点注意的东西) 3. 解法 4. 可能有帮助的前置习题 5. 所用到的数据结构与算法思想 6. 总 ...

  4. Java实现 LeetCode 124 二叉树中的最大路径和

    124. 二叉树中的最大路径和 给定一个非空二叉树,返回其最大路径和. 本题中,路径被定义为一条从树中任意节点出发,达到任意节点的序列.该路径至少包含一个节点,且不一定经过根节点. 示例 1: 输入: ...

  5. 124. 二叉树中的最大路径和

    124. 二叉树中的最大路径和: 题目链接 :124. 二叉树中的最大路径和 题目: 路径 被定义为一条从树中任意节点出发,沿父节点-子节点连接,达到任意节点的序列.同一个节点在一条路径序列中 至多出 ...

  6. LeetCode实战:二叉树中的最大路径和

    背景 为什么你要加入一个技术团队? 如何加入 LSGO 软件技术团队? 我是如何组织"算法刻意练习活动"的? 为什么要求团队的学生们写技术Blog 题目英文 Given a non ...

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

    题目: 路径 被定义为一条从树中任意节点出发,沿父节点-子节点连接,达到任意节点的序列.同一个节点在一条路径序列中 至多出现一次 .该路径 至少包含一个 节点,且不一定经过根节点. 路径和 是路径中各 ...

  8. 二叉树中的最大路径和—leetcode124

    给定一个非空二叉树,返回其最大路径和. 本题中,路径被定义为一条从树中任意节点出发,达到任意节点的序列.该路径至少包含一个节点,且不一定经过根节点. 示例 1: 输入: [1,2,3] 1       ...

  9. leetcode-- 124. 二叉树中的最大路径和

    给定一个非空二叉树,返回其最大路径和. 本题中,路径被定义为一条从树中任意节点出发,达到任意节点的序列.该路径至少包含一个节点,且不一定经过根节点. 示例 1: 输入: [1,2,3]1/ \2 3输 ...

最新文章

  1. ASP.NET常被忽视的一些细节
  2. Django 07模型层—单表操作(增删改查)
  3. 【PC工具】更新图片批量处理工具Image Tuner,绿色免安装工具软件
  4. JS中集合对象(Array、Map、Set)及类数组对象的使用与对比
  5. Linux添加vlan不通,如何处理Linux虚拟机跨VLAN ping不通问题
  6. C语言基础-基本算法
  7. ajax使用json数组,使用JSON传递数组值的Ajax
  8. partial in latex
  9. Vue — 第五天(路由)
  10. JNI中的内存管理(转)
  11. CSS实现垂直居中的方法
  12. 计算机中丢失msc,mscvr120.dll32位/64位版_修复计算机中丢失msvcr120.dll
  13. three.js加入监控
  14. vld/rdy协议 断言
  15. MariaDB安装配置
  16. pythonlambda多行_Python中通过lambda抛异常的奇迹淫巧
  17. Linux 媒体框架(Media Framework)一
  18. c++ 计算多图形面积
  19. 同为双摄像头,华为P9到底比iPhone 7 plus差在哪里?
  20. 程序员普遍薪水都在3万以上?35岁码农用亲身经历和你聊聊

热门文章

  1. 星座符号Unicode值
  2. python多线程异步(一)
  3. 饭局狼人杀服务器维护,饭局狼人杀 - 和马东一起玩 - 腾讯游戏
  4. 论文笔记:DuLa-Net(CVPR 2019)
  5. activitygroup activity 启动时白屏、黑屏
  6. DevExpress ASP.NET Core Controls 2019发展蓝图(No.4)
  7. 企业付款到银行卡API~~
  8. mysql账户设置mim_mysql 设置账户权限
  9. 基于node.js + vant + vue-router + axios热点资讯H5移动端实现
  10. 自荐信当计算机课代表,北京邮电大学自主招生考生自荐信范文