2017-06-05 29 views
-1

我写了二叉树数据结构中的前序和中序遍历的代码,但预序遍历的结果是正确的,但我得到了一些错误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); 
} 
} 
+0

请求调试帮助不适合Stack Overflow问题。如果您对代码的特定功能有特定问题,请使用这些详细信息编辑您的问题。另外,不管你发布这样的问题在哪里,不要只说“有些错误”。始终给出确切的错误代码,错误文本或有问题行为的详细说明。 –

回答

1

要调用从printInorderprintPreorder方法,你必须调用printInorder

private static void printInorder(Node root) { 
    if (root == null) 
     return; 
    printInorder(root.left); 
    System.out.print(root.data + " "); 
    printInorder(root.right); 
} 
0

在你的代码printInorder方法应该调用递归同样的方法

private static void printInorder(Node root) { 
      if (root == null) 
       return; 
      printInorder(root.left); 
      System.out.print(root.data + " "); 
      printInorder(root.right); 
     }