阅读量:65
在C#中,遍历TreeNode的方法有以下几种:
- 递归遍历:通过递归的方式遍历TreeNode以访问每个节点和其子节点。
void Traverse(TreeNode node)
{
if(node != null)
{
// 处理当前节点
Console.WriteLine(node.Value);
// 遍历左子节点
Traverse(node.Left);
// 遍历右子节点
Traverse(node.Right);
}
}
- 前序遍历:按照“根-左-右”的顺序访问节点。
void PreOrderTraverse(TreeNode node)
{
if(node != null)
{
// 处理当前节点
Console.WriteLine(node.Value);
// 遍历左子节点
PreOrderTraverse(node.Left);
// 遍历右子节点
PreOrderTraverse(node.Right);
}
}
- 中序遍历:按照“左-根-右”的顺序访问节点。
void InOrderTraverse(TreeNode node)
{
if(node != null)
{
// 遍历左子节点
InOrderTraverse(node.Left);
// 处理当前节点
Console.WriteLine(node.Value);
// 遍历右子节点
InOrderTraverse(node.Right);
}
}
- 后序遍历:按照“左-右-根”的顺序访问节点。
void PostOrderTraverse(TreeNode node)
{
if(node != null)
{
// 遍历左子节点
PostOrderTraverse(node.Left);
// 遍历右子节点
PostOrderTraverse(node.Right);
// 处理当前节点
Console.WriteLine(node.Value);
}
}
这些方法可以根据具体的需求选择使用,来遍历TreeNode中的节点。