145. 二叉树的后序遍历

这题的做法思路基本和中序遍历思路一样,用递归去写的话,时间复杂度是O(N), 空间复杂度是O(N), 空间复杂度的具体是树的大小,时间复杂度是遍历这棵树所有节点的时间。
递归做法
public List<Integer> postorderTraversal(TreeNode root) {
        ArrayList<Integer>arrayList = new ArrayList<>();
        postorder(root,arrayList);
        return arrayList;
    }

    /**
     * 后序遍历的写法是左子树 右子树 然后 父节点这样子,用递归就可以很好的做出来
     */

    public void postorder(TreeNode treeNode, ArrayList arrayList){
        if (treeNode != null){
            if (treeNode.left != null){
                postorder(treeNode.left,arrayList);
            }
            if (treeNode.right != null){
                postorder(treeNode.right,arrayList);
            }
            arrayList.add(treeNode.val);
        }
    }

 

posted @ 2019-08-06 19:51  WuCola  阅读(79)  评论(0)    收藏  举报