Java教程

Java中二叉树的前序遍历、中序遍历及后续遍历代码

本文主要是介绍Java中二叉树的前序遍历、中序遍历及后续遍历代码,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

公共类——节点类代码:

//  Definition for a binary tree node.
public class TreeNode {
     int val;
     TreeNode left;
     TreeNode right;
     TreeNode() {}
     TreeNode(int val) { this.val = val; }
     TreeNode(int val, TreeNode left, TreeNode right) {
         this.val = val;
         this.left = left;
         this.right = right;
     }
 }

一、二叉树的前序遍历

class PreOrder {
    public List<Integer> preorderTest(TreeNode root) {
        List<Integer> res = new ArrayList<>();
        preOrder(root, res);
        return res;
    }
    public void preOrder(TreeNode root, List<Integer> res) {
        if (root == null)
            return;
        //先打印当前节点,然后打印左子树,最后再打印右子树
        res.add(root.val);
        preOrder(root.left, res);
        preOrder(root.right, res);
    }
}

二、二叉树的中序遍历

class InOrder {
    public List<Integer> inorderTest(TreeNode root) {
        List<Integer> res = new ArrayList<>();
        inOrder(root, res);
        return res;
    }

    public void inOrder(TreeNode root, List<Integer> res) {
        if(root == null) return;
        inOrder(root.left, res);
        res.add(root.val);
        inOrder(root.right, res);
    }
}

三、二叉树的后序遍历

class PostOrder {
    public List<Integer> postorderTest(TreeNode root) {
        List<Integer> res = new ArrayList<>();
        postOrder(root, res);
        return res;
    }

    public void postOrder(TreeNode root, List<Integer> res){
        if (root == null) return;
        postOrder(root.left, res);
        postOrder(root.right, res);
        res.add(root.val);
    }
}

 

这篇关于Java中二叉树的前序遍历、中序遍历及后续遍历代码的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!