在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中的节点。