Java实现递归二叉树遍历
/** java实现二叉树的遍历
* 使用递归
* 参考csdn文章
*2021/10/29*/
import java.util.Scanner;
public class Node {
/** 定义一个树以及它的左右孩子*/
Node Left;
Node Right;
int data;
Node(){} //构造函数
/**使用递归构建树 */
public Node Create(){
Scanner in = new Scanner(System.in);
int a = in.nextInt();
if (a==-1){
return null;
}else{
Node head = new Node();
head.data = a;
System.out.println(a+"的左子树");
head.Left = Create();
System.out.println(a+"的右孩子");
head.Right = Create();
return head;
}
}
public void PrePrint(Node head){
if (head!=null){
System.out.println(head.data+" ");
PrePrint(head.Left);
PrePrint(head.Right);
}
}
public void inorderPrePrint(Node head) {
if (head != null) {
inorderPrePrint(head.Left);
System.out.println(head.data + "");
inorderPrePrint(head.Right);
}
}
public static void main(String[] args) {
Node create = new Node();
Node head;
head=create.Create();
head.PrePrint(head);
System.out.println("\n");
head.inorderPrePrint(head);
}
}