龙空技术网

二叉树的后序遍历

韩小韩Sunny 27

前言:

此刻同学们对“后序遍历输出二叉树”大概比较关怀,看官们都想要知道一些“后序遍历输出二叉树”的相关内容。那么小编同时在网摘上搜集了一些关于“后序遍历输出二叉树””的相关文章,希望兄弟们能喜欢,咱们快快来学习一下吧!

输出下图的二叉树的后序遍历结果

解题思路:

后续遍历是先访问根节点的左子树,然后访问右子树,最后访问根节点。依然使用递归处理,和前序中序逻辑一样,只是改变访问节点的顺序即可。

代码片段:

public static void main(String[] args) {    // 以0作为分隔,数字0表示空节点    int[] arr = new int[]{1, 2, 0, 3, 4, 0, 0, 0, 5, 6, 0, 0, 7, 8, 9, 0, 0, 0, 0};    TreeNode binaryTree = createBinaryTree(arr);    List<Integer> list = preorderTraversal(binaryTree);    System.out.println(JSON.toJSONString(list));}public static List<Integer> preorderTraversal(TreeNode root) {    List<Integer> res = new ArrayList<>();    preorder(root, res);    return res;}public static void preorder(TreeNode root, List<Integer> res) {    if (root == null) {        return;    }    preorder(root.leftChild, res);    preorder(root.rightChild, res);    res.add(root.data);}

本地执行结果:

LeetCode执行结果:

每天一道算法题,欢迎大佬沟通指正~

标签: #后序遍历输出二叉树