求二叉树的最远路径问题

问题描述:

求二叉树的最远路径问题
1015.最远路径
Time Limit:1000 MS Memory Limit:32768 KB
Total
Submission(s):13 Accepted Submission(s):4
Description
有一棵有n个节点的二叉树,它的节点编号为1到n,根节点编号是1,它的每条边都有一个给定的长度.请你求出该二叉树中距离根节点最远的节点.
Input
第1行:一个数字n(1 n;
\x05str* arr=(str*)malloc(sizeof(str)*(n+1));//开辟空间 数组从1开始
\x05//输入每个结点数据
\x05for(int i=1;i>arr[i].distance>>arr[i].lchild>>arr[i].rchild;
\x05\x05arr[i].tag=0;
\x05\x05if(arr[i].lchild==0&&arr[i].rchild==0)//标记叶子结点
\x05\x05\x05arr[i].tag=1;
\x05\x05if(i==1)
\x05\x05\x05arr[i].tag=2;//标记2表示是根结点
\x05}
\x05//为每个结点添加指针指向关系
\x05for(int j=1;jdistance;
\x05\x05\x05\x05next=next->Parent;
\x05\x05\x05}
\x05\x05\x05if(sum>sum1)
\x05\x05\x05\x05sum1=sum;
\x05\x05}
\x05}
\x05cout

貌似.sum+=next->distance 那叶子节点的distance加了吗加了啊那个next指针开始是指向叶子结点的next是这个意思啊。。。你这个程序编的有点冗杂,浪费了一些东西,不过我好歹算是看懂了,没有发现什么大问题。如果报RE或者TLE我都可以理解,但是报WA的话,估计数据里有什么陷阱吧,比如负距离什么的,你可以编个延迟代码测试下是不是输入有负数,如果有,延迟500ms,然后看结果你的运行时间超没超500