java面试 简单的创建一个二叉树并遍历(我用的是前序遍历)

1、创建树,代码如下

public class BinaryTree {
    TreeNode root;

    public void setRoot(TreeNode root) {
        this.root = root;
    }

    public void frontShow() {
        root.frontShow();
        
    }
}

2、创建树的节点信息,代码如下

public class TreeNode {
    int data;                   //给节点赋值
    TreeNode leftNode;   //树的左子节点
    TreeNode rightNode;  //树的右子节点
    
    public TreeNode(int data){
        this.data = data;
    }

//写两个节点的set方法

    public void setLeftNode(TreeNode leftNode) {
        this.leftNode = leftNode;
        
    }

    public void setRightNode(TreeNode rightNode) {
        this.rightNode = rightNode;
        
    }

//具体的前序遍历如下,用到递归思想

    public void frontShow() {
        System.out.print(this.data);
        if(leftNode != null){
            leftNode.frontShow();
        }
        if(rightNode != null){
            rightNode.frontShow();
        }
    }
}
3、建立一个测试类,验证下所写方法的有效性

public class TestTreeDemo {
    public static void main(String[] args) {

//创建二叉树
        BinaryTree tree = new BinaryTree();

//创建一个根节点,并且赋值
        TreeNode n1 = new TreeNode(1);

//把根节点加入二叉树中
        tree.setRoot(n1);
 //创建两个树节点  
        TreeNode n2 = new TreeNode(2);
        TreeNode n3 = new TreeNode(3);
 //将两个节点分别写成根节点(n1)的左(n2)右(n3)节点  
        n1.setLeftNode(n2);
        n1.setRightNode(n3);
//为n2节点分配左右子节点
        n2.setLeftNode(new TreeNode(4));
        n2.setRightNode(new TreeNode(5));
//为n3节点分配左右子节点    
        n3.setLeftNode(new TreeNode(6));
        n3.setRightNode(new TreeNode(7));
    //调用前序遍历方法  
        tree.frontShow();//结果为1245367
    }
}

4、具体二叉树如下:

java面试 简单的创建一个二叉树并遍历(我用的是前序遍历)