面试题84:结点和最大的子树
来源:互联网 发布:js 图片对象 编辑:程序博客网 时间:2024/04/30 23:03
题目:
给一个二叉树,每个结点都是正或负整数,如何找到一个子树,它所有的结点和最大?
思路:
可以用后序遍历,用一个变量来存储每个结点左右子树加上自己的最大值,用另一个变量来存储该最大值对应的结点。
#include <iostream>#include <algorithm>#include <vector>using namespace std;struct Node{int val;Node *left;Node *right;Node(int _val):val(_val),left(NULL),right(NULL){}};int GetMaxSumSubTreeCore(Node *root, int & max ,Node *&re){if (root == NULL) return 0;int curMax = GetMaxSumSubTreeCore(root->left, max, re) + GetMaxSumSubTreeCore(root->right, max, re) + root->val;if (curMax > max){max = curMax;re = root;}return curMax;}Node *GetMaxSumSubTree(Node *root){int max = 0;Node *re = root;GetMaxSumSubTreeCore(root, max, re);cout << max << endl;return re;}int main(){Node *n1 = new Node(-1);Node *n2 = new Node(2);Node *n3 = new Node(3);Node *n4 = new Node(-4);Node *n5 = new Node(5);Node *n6 = new Node(2);Node *n7 = new Node(1);Node *n8 = new Node(12);Node *n9 = new Node(8);Node *n10 = new Node(1);Node *n11 = new Node(3);Node *n12 = new Node(-5);Node *n13 = new Node(5);Node *n14 = new Node(6);Node *n15 = new Node(-30);n1->left = n2;n1->right = n3;n2->left = n4;n2->right = n5;n3->left = n6;n3->right = n7;n4->left = n8;n4->right = n9;n5->left = n10;n5->right = n11;n6->left = n12;n6->right = n13;n7->left = n14;n7->right = n15;Node *re = GetMaxSumSubTree(n1);cout << re->val << endl;return 0;}
注意:如果要修改结点参数,就需要写成
Node *&re;
0 0
- 面试题84:结点和最大的子树
- 面试题88:二叉树中结点的最大距离
- Microsoft 2016 面试题1 | 最大二叉搜索子树
- 面试题:输入一颗二元查找树,将该树转换为它的镜像, 即在转换后的二元查找树中,左子树的结点都大于右子树的结点。 用递归和循环两种方法完成树的镜像转换。
- 二叉树和最大的子树
- 二叉树和最大的子树
- 寻找节点和最大的子树
- 二叉树的最大子树和
- 【u125】最大子树和
- 最大子树和
- 面试题56:链表中环的入口结点
- 面试题64:链表中环的入口结点
- 面试题56. 链表中环的入口结点
- 面试题56:链表中环的入口结点
- 洛谷1122 最大子树和
- 洛谷 P1122 最大子树和
- 洛谷 P1122 最大子树和
- 洛谷P1122 最大子树和
- algrothm_java_base
- 第三周项目:三色球
- 深度学习论文笔记:OverFeat
- 安卓四种启动模式
- 【RAID】基本结构
- 面试题84:结点和最大的子树
- 飛飛(二十五)成员函数,友元函数,和一般函数的区别1
- 输出星号图(空心三角)
- 新建一个cocos2dx-3.3项目
- 修改通达OA Mysql数据库密码
- 《iOS Human Interface Guidelines》——Icon and Image Sizes
- 中断机制
- 总结一些关于fatal error RC1004: unexpected end of file found错误的解决方法
- OA项目实战学习(7)——初始化数据&权限配置显示