Buttercola: Indeed: N-ary tree root to leaf min cost
N-ary tree, Each edge has a weight. Calculate the minimum path sum, and return the path nodes.
Read full article from Buttercola: Indeed: N-ary tree root to leaf min cost
N-ary tree, Each edge has a weight. Calculate the minimum path sum, and return the path nodes.
private static int minCost = Integer.MAX_VALUE; public List<Integer> findMinCostFromRootToLeaf(TreeNode root) { List<Integer> result = new ArrayList<>(); if (root == null) { return result; } List<Integer> curr = new ArrayList<>(); curr.add(root.val); findMinCostHelper(root, root.val, curr, result); return result; } private void findMinCostHelper(TreeNode root, int cost, List<Integer> curr, List<Integer> result) { if (root.children == null || root.children.length == 0) { if (cost < minCost) { minCost = cost; result.clear(); result.addAll(curr); } return; } for (TreeNode child : root.children) { curr.add(child.val); findMinCostHelper(child, cost + child.val, curr, result); curr.remove(curr.size() - 1); } } static class TreeNode { int val; TreeNode[] children; public TreeNode(int val, int n) { this.val = val; this.children = new TreeNode[n]; } }