java遍歷二叉樹(shù)的代碼怎么寫(xiě)

小億
82
2023-12-13 17:14:14

下面是一個(gè)使用遞歸的例子,以中序遍歷二叉樹(shù)為例:

class TreeNode {
    int val;
    TreeNode left;
    TreeNode right;
    
    public TreeNode(int val) {
        this.val = val;
        this.left = null;
        this.right = null;
    }
}

public class BinaryTreeTraversal {
    public void inorderTraversal(TreeNode root) {
        if (root != null) {
            inorderTraversal(root.left);
            System.out.print(root.val + " ");
            inorderTraversal(root.right);
        }
    }
    
    public static void main(String[] args) {
        /*
                   1
                  / \
                 2   3
                / \
               4   5
        */
        
        TreeNode root = new TreeNode(1);
        root.left = new TreeNode(2);
        root.right = new TreeNode(3);
        root.left.left = new TreeNode(4);
        root.left.right = new TreeNode(5);
        
        BinaryTreeTraversal btt = new BinaryTreeTraversal();
        System.out.println("Inorder traversal:");
        btt.inorderTraversal(root);
    }
}

輸出結(jié)果為:4 2 5 1 3,表示中序遍歷的結(jié)果。

你也可以根據(jù)需要修改代碼實(shí)現(xiàn)其他遍歷方式,比如前序遍歷和后序遍歷。

0