The definition of the binary tree and the front, middle, and last order, traversal

Insert picture description here
Insert picture description here

class Solution {
    
    
    List <Integer> list = new ArrayList<>();
    public List<Integer> preorderTraversal(TreeNode root) {
    
    
        if(root==null)
            return new ArrayList<>();
        list.add(root.val);
        preorderTraversal(root.left);
        preorderTraversal(root.right);
        return list;
    }
}
class Solution {
    
    
    List <Integer> list = new ArrayList<Integer>();
    public List<Integer> inorderTraversal(TreeNode root) {
    
    
        if(root == null)
            return list;
        inorderTraversal(root.left);
        list.add(root.val);
        inorderTraversal(root.right);
        return list;
    }
}
class Solution {
    
    
    List <Integer> list = new ArrayList<Integer>();
    public List<Integer> postorderTraversal(TreeNode root) {
    
    
        if(root == null)
            return new ArrayList<Integer>();
        postorderTraversal(root.left);
        postorderTraversal(root.right);
        list.add(root.val);
        return list;
    }
}

Sequence traversal:
I think layer sequence traversal can also be regarded as a breadth-first search (BFS) of a tree, starting with the root node, traversing first-level neighbors, second-level neighbors... etc. The
specific implementation is to use queues to achieve
Insert picture description here
power Demonstration of sequence traversal

class Solution {
    
    
    Queue<TreeNode> queue = new LinkedList<TreeNode>();
    List<List<Integer>> list = new ArrayList<List<Integer>>();
    public List<List<Integer>> levelOrder(TreeNode root) {
    
    
        if(root == null)
            return list;
        queue.offer(root);
        while(!queue.isEmpty()){
    
    
            int size = queue.size();
            List<Integer> innerList = new ArrayList<Integer>();;
            while(size--!=0){
    
    
                TreeNode treeNode = queue.poll();
                innerList.add(treeNode.val);
                if(treeNode.left != null)
                    queue.add(treeNode.left);
                if(treeNode.right != null)
                    queue.add(treeNode.right);
            }
            if(innerList != null)
                list.add(innerList);
        }
        return list;
    }
}

Insert picture description here

Insert picture description here

Guess you like

Origin blog.csdn.net/m0_45311187/article/details/110815326