二叉树的最大路径和 II--要求开始于根节点--则 先加上根节点,再递归左右子树。
来源:互联网 发布:数据库范式举例 编辑:程序博客网 时间:2024/05/29 04:28
给一棵二叉树,找出从根节点出发的路径中,和最大的一条。
这条路径可以在任何二叉树中的节点结束,但是必须包含至少一个点(也就是根了)。
样例
给出如下的二叉树:
1 / \2 3
返回4
。(最大的路径为1→3)
int maxSum=INT_MIN; void process(TreeNode *root,int sum){ if(root == NULL) return; sum += root->val;//往下经过 要加上该点的val maxSum=max(maxSum,sum); process(root->left,sum); process(root->right,sum); sum -= root->val;//往上回父节点 要减去该点的val } int maxPathSum2(TreeNode *root) { if(root == NULL) return 0; maxSum=root->val; int sum=0; process(root,sum); return maxSum; }
0 0
- 二叉树的最大路径和 II--要求开始于根节点--则 先加上根节点,再递归左右子树。
- 二叉树的最大路径和,这里的路径可以跨越根和左右子树
- 二叉树中所有节点的左右子树相互交换 递归与非递归程序
- 二叉树中所有节点的左右子树相互交换 递归与非递归程序
- 6_43_递归交换二叉树中所有节点的左右子树
- 有一个二叉树, 节点全部为整数,如何找到一个子树,它所有节点的和最大?要求编程序实现。
- 【算法题】求二叉树所有节点的左右子树的绝对值差的和
- 输入一个满二叉树的深度和它的三个节点,求三个节点最小子树的,根节点
- 输入一个满二叉树的深度和它的三个节点,求三个节点最小子树的,根节点
- 建树的基本思路:从根节点开始递归调用显示子树
- 寻找节点和最大的子树
- 二叉树(三)二叉树的高度、交换两个子树左右节点
- 求二叉树中的最大路径和,也就是求节点和节点之间的路径上所有节点的最大值
- 找出二叉树中和最大的路径,路径可以从任意节点开始,到任意节点结束。
- 将一棵二叉树的全部节点的左右子树交换顺序
- 非递归实现交换二叉树的左右子节点
- 编写算法交换二叉树中所有节点的左右子树
- 二叉树中节点的最大距离(树的最长路径)——递归解法
- 刷机
- 自定义圆形头像
- 1024
- DP83848 跑10M能行,跑100M不行 的原因
- GEEK编程练习— —字符替换
- 二叉树的最大路径和 II--要求开始于根节点--则 先加上根节点,再递归左右子树。
- 欢迎使用CSDN-markdown编辑器
- Bundler及PMVS的配置与使用(简易版)
- 剑指Offer--034-丑数
- django框架从零开始_004_数据库_API
- 实现线程的两种方式
- net user
- c语言简易计算器
- 将属性文件以key-value值形式输出的工具类