您的位置:首页 > 其它

给一棵搜索二叉树,然后给出一个从跟到叶节点的最短的路径之和。

2016-09-19 21:36 253 查看
题目: 给一棵搜索二叉树,然后给出一个从跟到叶节点的最短的路径之和。

例如            5
            3            8
     2               6      11
0

那么输出就是5+3+2=10

思路,用动态规划的思想,其实就是普通的得到树的最小深度的变种。

代码如下:

[cpp] view
plain copy

 





int GetMin(int a, int b)  

{  

    return a < b ? a : b;  

}  

  

//得到搜索二叉树的最短路径  

int GetMinSearchPath(BinaryTreeNode* pRoot)  

{  

    if (pRoot == NULL)  

        return 0;  

    if (pRoot->left == NULL)  

        return GetMinSearchPath(pRoot->right) + pRoot->value;  

    if (pRoot->right == NULL)  

        return GetMinSearchPath(pRoot->left) + pRoot->value;  

  

    return GetMin(GetMinSearchPath(pRoot->left), GetMinSearchPath(pRoot->right)) + pRoot->value;  

}  
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐