如何通过递归实现输入id查询出该id对应的信息

static TreeNode GenData()
{
TreeNode tree = new TreeNode() { ID = "1", Name = "Main Node" };

        for (int i = 1; i <= 4; i++)
        {
            TreeNode tree1_1 = new TreeNode() { ID = i.ToString(), Name = "Child Node " + i.ToString() };
            for (int j = 1; j <= 4; j++)
            {
                TreeNode tree1_1_1 = new TreeNode() { ID = i.ToString() + "." + j.ToString(), Name = "Child Node " + i.ToString() + "." + j.ToString() };
                for (int k = 1; k <= 4; k++)
                {
                    tree1_1_1.AddNode(new TreeNode()
                    {
                        ID = i.ToString() + "." + j.ToString() + "." + k.ToString(),
                        Name = "Child Node " + i.ToString() + "." + j.ToString() + "." + k.ToString()
                    });
                }
                tree1_1.AddNode(tree1_1_1);
            }
            tree.AddNode(tree1_1);
        }
        return tree;
    }
TreeNode GetTreeNode(string id,TreeNode parentNode)
{
    foreach(TreeNode tn in parentNode.Nodes)
    {
        if(tn.Id==id){
            return tn;
        }
        GetTreeNode(id,tn);
    }
    return null;
}



TreeNode GetTreeNode(string id,TreeNode parentNode)
{
    foreach(TreeNode tn in parentNode.Nodes)
    {
        if(tn.Id==id){
            return tn;
        }
        var r = GetTreeNode(id,tn);
                if (r != null) return r;
    }
    return null;
}