[求助]C#下,如何求二叉树最大深度下的所有节点 加入有以下的一个二叉树: 1 / \ 2 3 / / \ 4 5 6 / \ 8 9请问,如何求出节点8和9?多谢各位同行:) 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 我写的代码不是很好,但是实现了。你可以参考一下List<TreeNode> lt = new List<TreeNode>();//记录树的所有没有子节点的结点 List<TreeNode> lt1 = new List<TreeNode>();//记录最深的结点 void aaa(TreeNode tn) { foreach (TreeNode node in tn.Nodes) { if (node.Nodes.Count > 0) { aaa(node); } else { lt.Add(node); } } }//调用:aaa(treeView1.Nodes[0]);//将树的根节点传进函数 int max = 0; for (int i = 0; i < lt.Count; i++)//遍历所有没有子节点的结点,从中获取最深的结点存进lt1中 { if (lt[i].Level >= max) { if (lt[i].Level == max) { lt1.Add(lt[i]); } else { lt1.Clear(); lt1.Add(lt[i]); max = lt[i].Level; } } } List<TreeNode> lt1 = new List<TreeNode>();//记录最深的结点 int max = 0; void aaa(TreeNode tn) { foreach (TreeNode node in tn.Nodes) { if (node.Nodes.Count > 0) { aaa(node); } else { if (node.Level >= max) { if (node.Level == max) { lt1.Add(node); } else { lt1.Clear(); lt1.Add(node); max = node.Level; } } } } }优化了一下 File.ReadAllByte(string path)里面的路径不能使用URI吗?? C# 水晶报表数据源问题 datatable合并问题 麻烦高手帮我看看这段代码,总是报错 关于VS2005做的C#类库文件问题 问个很有难度的问题 DataSet 系列化 问题 有没有C#进行页面采集的源码例子啊 如何在上百万条记录中查询一个记录,用什么方法查询最快 .net高级工程师面试题 最近想学习下C#.net在winform中开发,有什么好书推荐下?? 窗体上放一个toolstrip控件,为何不能移动呢?(手柄是可见的呀)
List<TreeNode> lt1 = new List<TreeNode>();//记录最深的结点
void aaa(TreeNode tn)
{
foreach (TreeNode node in tn.Nodes)
{
if (node.Nodes.Count > 0)
{
aaa(node);
}
else
{
lt.Add(node);
}
}
}
//调用:
aaa(treeView1.Nodes[0]);//将树的根节点传进函数
int max = 0;
for (int i = 0; i < lt.Count; i++)//遍历所有没有子节点的结点,从中获取最深的结点存进lt1中
{
if (lt[i].Level >= max)
{
if (lt[i].Level == max)
{
lt1.Add(lt[i]);
}
else
{
lt1.Clear();
lt1.Add(lt[i]);
max = lt[i].Level;
}
}
}
void aaa(TreeNode tn)
{
foreach (TreeNode node in tn.Nodes)
{
if (node.Nodes.Count > 0)
{
aaa(node);
}
else
{
if (node.Level >= max)
{
if (node.Level == max)
{
lt1.Add(node);
}
else
{
lt1.Clear();
lt1.Add(node);
max = node.Level;
}
}
}
}
}优化了一下