龙空技术网

二叉树的后序遍历

韩小韩Sunny 121

前言:

眼前咱们对“java后序遍历”大致比较讲究,同学们都需要学习一些“java后序遍历”的相关知识。那么小编也在网摘上网罗了一些有关“java后序遍历””的相关内容,希望小伙伴们能喜欢,看官们一起来了解一下吧!

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

解题思路:

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

代码片段:

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执行结果:

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

标签: #java后序遍历