
Untitled
By: a guest on
Jun 26th, 2012 | syntax:
None | size: 0.50 KB | hits: 9 | expires: Never
void printPath(Node node, int target) {
List<Node> path = new ArrayList<Node>();
traversePath(node, target, path, 0);
}
void traversePath(Node node, int target, List<Node> path, level) {
if (node == null) return;
path.add(level, node);
int tmp = target;
for(int i = level; i >= 0; i--) {
tmp = tmp - path.get(i).value;
if (tmp == 0) printPath(path, i, level);
}
traversePath(node.left, target, path.clone(), level + 1);
traversePath(node.right, target, path.clone(), level + 1);
}