📜  门|门 IT 2006 |第 54 题(1)

📅  最后修改于: 2023-12-03 15:28:48.244000             🧑  作者: Mango

门|门 IT 2006 |第 54 题

题目描述

这是一道关于二叉树的题目。给定一棵二叉树,每个节点上都有一个权值,权值有正有负。定义二叉树的路径为从一个节点往下走,直到叶节点为止。路径上所有节点的权值和即为该路径的权值。二叉树的路径可以看作是一条从根节点开始往下走的边的序列。请编写一个函数,用来求解二叉树中权值和最大的路径。例如,下面所示的二叉树。

     1
   /   \
  2     3
 / \   / \
4   5 6   7

这棵树中,最大的路径是 2 -> 5 -> 1 -> 3 -> 7,路径上的节点权值和为 2 + 5 + 1 + 3 + 7 = 18

输入格式

输入包含多组数据,每组数据由多行组成,表示一棵二叉树的节点权值。二叉树以先序遍历的方式输入,其中空树用字符 # 表示。每个数字之间用单个空格隔开,节点权值的大小不超过 1000

输出格式

对于每组数据,输出一行,其中包含一个整数,表示该二叉树中权值和最大的路径所包含的数字之和。

样例输入
-1 7 -1 6 -1 -1 3 -1 -1
-10 9 20 # # 15 7
样例输出
13
44
数据范围

输入的二叉树大小不超过 10000 个节点,输入数据总共包含不超过 100 组。