zoukankan      html  css  js  c++  java
  • 二叉树的前序遍历、中序遍历、后序遍历、层序遍历

    1.节点定义
    public class TreeNode {
        public int val;
        public TreeNode left;
        public TreeNode right;
    
    
        public TreeNode(int val) {
            this.val = val;
        }
    
        public TreeNode(int val, TreeNode left, TreeNode right) {
            this.val = val;
            this.left = left;
            this.right = right;
        }
    }
    
    2.中序遍历

    左-根-右

    public static void printTreeInOrder(TreeNode root) {
        if (root == null) {
            return;
        }
        if (root.left != null) {
            printTreeInOrder(root.left);
        }
        System.out.print(root.val + "\t");
        if (root.right != null) {
            printTreeInOrder(root.right);
        }
    }
    
    3.先序遍历

    根-左-右

    public static void printTreePreOrder(TreeNode root) {
        if (root == null) {
            return;
        }
        System.out.print(root.val + "\t");
        if (root.left != null) {
            printTreePreOrder(root.left);
        }
        if (root.right != null) {
            printTreePreOrder(root.right);
        }
    }
    
    4.后序遍历

    左-右-根

    public static void printTreePostOrder(TreeNode root) {
        if (root == null) {
            return;
        }
        if (root.left != null) {
            printTreePostOrder(root.left);
        }
        if (root.right != null) {
            printTreePostOrder(root.right);
        }
        System.out.print(root.val + "\t");
    
    }
    
    5.层序遍历

    利用队列

    public static void printTreeLevelOrder(TreeNode root) {
        LinkedList<TreeNode> queue = new LinkedList<>();
        queue.offer(root);
        while (!queue.isEmpty()) {
            TreeNode current = queue.poll();
            System.out.print(current.val + "\t");
            if (current.left != null) {
                queue.offer(current.left);
            }
            if (current.right != null) {
                queue.offer(current.right);
            }
        }
        System.out.println();
    }
    
  • 相关阅读:
    Splay 区间操作(二)
    P1351 联合权值
    Splay 区间操作
    P1801 黑匣子_NOI导刊2010提高(06)
    P3620 [APIO/CTSC 2007]数据备份
    T25990 [Wind Festival]Running In The Sky
    P1484 种树
    P4177 [CEOI2008]order
    题解 P2762 【太空飞行计划问题】
    dalao&话
  • 原文地址:https://www.cnblogs.com/worldline/p/15725598.html
Copyright © 2011-2022 走看看