无法得到正确的结果,在二叉树中的inorder遍历,Java数据结构
问题描述:
我写了二叉树数据结构中的前序和中序遍历的代码,但预序遍历的结果是正确的,但我得到了一些错误inorder遍历,任何人都可以在我的代码中显示我的错误。 在此先感谢。无法得到正确的结果,在二叉树中的inorder遍历,Java数据结构
public class treepractice {
static Node root = null;
static class Node{
int data;
Node left, right;
Node(int d){
data = d;
left=right = null;
}
}
public static void main(String[] agrs){
treepractice tree = new treepractice();
tree.root = new Node(1);
tree.root.left = new Node(2);
tree.root.right = new Node(3);
tree.root.left.left = new Node(4);
tree.root.left.right = new Node(5);
// root.right.left = new Node(6);
tree.printInorder(root);
System.out.println();
tree.printPreorder(root);
System.out.println();
}
private static void printPreorder(Node root) {
if(root == null)
return;
System.out.print(root.data + " ");
printPreorder(root.left);
printPreorder(root.right);
}
private static void printInorder(Node root) {
if(root == null)
return;
printPreorder(root.left);
System.out.print(root.data + " ");
printPreorder(root.right);
}
}
答
要调用从printInorder
printPreorder
方法,你必须调用printInorder
private static void printInorder(Node root) {
if (root == null)
return;
printInorder(root.left);
System.out.print(root.data + " ");
printInorder(root.right);
}
答
在你的代码printInorder方法应该调用递归同样的方法
private static void printInorder(Node root) {
if (root == null)
return;
printInorder(root.left);
System.out.print(root.data + " ");
printInorder(root.right);
}
请求调试帮助不适合Stack Overflow问题。如果您对代码的特定功能有特定问题,请使用这些详细信息编辑您的问题。另外,不管你发布这样的问题在哪里,不要只说“有些错误”。始终给出确切的错误代码,错误文本或有问题行为的详细说明。 –