Find path to node in Tree?
java, tree
Solution
passing a list tracking the path, once find the node, exit the recursion and fill the path one by one.
Boolean Search(Node node, String value, List<Node> track)
{
if (node == null) return false;
if (node.data.equals(value))
{
track.add(node);
return true;
}
for(Node child : node.children)
{
if (Search(child, value, track)
{
track.add(0, node);
return true;
}
}
return false;
}
Problem
I have a tree class that looks like: ``` Class Tree { Node root; Node curNode; public List<String> find(String value) { if (curNode == null) curNode = root; for (Node child : curNode.children) { if (found == false) { if (child.data.equals(value)) { // if it finds it return the path to this node. } curNode = child; findDFS(value); } } } class Node { List<Node> children; String data; } ``` Where the tree root contains pointers to children nodes which point to other children etc etc. What I'm having problems with is once it finds the node, I need to return the the path to that node.