求二叉树一条所有的data之和最大的路径 用先序遍历可以完成该操作。维护两条路径,一条是当前遍历路径,一条是当前最大值的路径初略写个算法,两个路径的增删就不写了,可以是个指针数组或链表。GetMaxPath(struct NODE*root,long curTotal,long*MaxTotal){if(root。NULL){将本节点加入当前遍历路径if((curTotal+root->;data)>;MaxTotal){将当前遍历路径覆盖当前最大值路径}GetMaxPath(root->;left,curTotal+root->;data,MaxTotal);GetMaxPath(root->;right,curTotal+root->;data,MaxTotal);将本节点从当前遍历路径中删除}}最终获取的最大值路径即为最终结果。
编写c++算法求任意二叉树中一条最长的路径,并输出此路径上各结点的值
二叉树的路径和内部路径长度有什么区别? 1.二叉树的路径是指从根节点到一个节点的路线。比如下面这树:1/2 3/4 5 6 7/8 9 10 到节点10的路径就是 1->;2->;5->;10 2.二叉树的内部路径长度就是指所有节点的深度之和。比如下面这树:1/2 3/4 5 6 7/8 9 10 节点号 深度 1 0 2 1 3 1 4 2 5 2 6 2 7 2 8 3 9 3 10 3 总计:2*1+4*2+3*3=2+8+9=19
非二叉树两节点最短路径的算法,不是二叉树哦,就是普通的树,有什么算法可以实现求两节点最短路径的呢 不懂,树上还有最短路径?两节点间只有唯一路径啊,求最近公共祖先就行了