首先根据二叉树的中序和后序遍历构建二叉树,然后找一个叶子节点使得它到根的路径上的权和最小。
链接
题目描述
给一棵点带权(权值各不相同,都是小于10000的正整数)的二叉树的中序和后序遍历,找一个叶子节点使得它到根的路径上的权和最小。如果有多解,该叶子本身的权应尽量小。输入中每两行表示一棵树,其中第一行为中序遍历,第二行为后序遍历。
题解
根据中序和后序遍历可以构建出这棵二叉,然后用DFS搜索找到结果。
代码
通过设置best_sum和best找到最优解的方法值得学习啊。
1 | /* |
To make the world a better place
首先根据二叉树的中序和后序遍历构建二叉树,然后找一个叶子节点使得它到根的路径上的权和最小。
给一棵点带权(权值各不相同,都是小于10000的正整数)的二叉树的中序和后序遍历,找一个叶子节点使得它到根的路径上的权和最小。如果有多解,该叶子本身的权应尽量小。输入中每两行表示一棵树,其中第一行为中序遍历,第二行为后序遍历。
根据中序和后序遍历可以构建出这棵二叉,然后用DFS搜索找到结果。
通过设置best_sum和best找到最优解的方法值得学习啊。
1 | /* |