输出下图的 二叉树 的 中序遍历 结果
解题思路:
- 中序遍历是先访问根节点的左子树,然后访问根节点,最后访问右子树。依然使用递归处理。
代码片段:
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);
res.add(root.data);
preorder(root.rightChild, res);
}
本地执行结果:
LeetCode执行结果:
每天一道算法题,欢迎大佬沟通指正~