牛客NC45 实现二叉树先序,中序和后序遍历(递归)

在这里插入图片描述

    public int[][] threeOrders (TreeNode root) {
    
    
        ArrayList<Integer> list = new ArrayList();
        ArrayList<Integer> list2 = new ArrayList();
        ArrayList<Integer> list3 = new ArrayList();
        preOrder(root,list);
        midOrder(root ,list2);
        afterOrder(root ,list3);
        int len = list.size();
        int[][] res = new int[3][len];
        for(int i=0;i<len;i++){
    
    
            res[0][i] = list.get(i);
            res[1][i] = list2.get(i);
            res[2][i] = list3.get(i);
        }
        return res;
    }
    public void preOrder(TreeNode node,ArrayList list){
    
    
        if(node == null) return;
        list.add(node.val);
        preOrder(node.left,list);
        preOrder(node.right,list);
    }
    public void midOrder(TreeNode node,ArrayList list){
    
    
        if(node == null) return;
        midOrder(node.left,list);
        list.add(node.val);
        midOrder(node.right,list);
    }
    public void afterOrder(TreeNode node,ArrayList list){
    
    
        if(node == null) return;
        afterOrder(node.left,list);
        afterOrder(node.right,list);
        list.add(node.val);
    }

猜你喜欢

转载自blog.csdn.net/qq_43434328/article/details/114903710