我有一个节点结构如下,这个节点有字符串数据和节点列表作为它的子节点。我想在这棵树中搜索一个数据我写了一个递归函数 FindNode(Node intree,string target)
public class Node
{
public string Data;
public List<Node> Children = new List<Node>();
//some code
public Node(string r)
{
this.Data = r;
}
public string getData()
{
return this.Data;
}
//some code
public List<Node> getchildren()
{
return this.Children;
}
//some code
}
target 是我要查找的字符串,而 intree 是树的开头(ROOT)我在 while 循环后遇到问题之后我应该返回什么?如果我错了,我该怎么写?
public Node FindNode(Node intree,string target)
{
if(intree.getData()==target)
return intree;
else
{
while(intree.getchildren()!=null)
{
foreach(Node n in intree.getchildren())
{
FindNode(n,target);
}
}
}
}