前言:
眼前咱们对“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后序遍历