题解 | #二叉树的中序遍历#
二叉树的中序遍历
http://www.nowcoder.com/practice/0bf071c135e64ee2a027783b80bf781d
import java.util.*;
/*
-
public class TreeNode {
-
int val = 0;
-
TreeNode left = null;
-
TreeNode right = null;
-
public TreeNode(int val) {
-
this.val = val;
-
}
-
} */
public class Solution { /** * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 * * * @param root TreeNode类 * @return int整型一维数组 */ public int[] inorderTraversal (TreeNode root) { // write code here
//中序遍历 遵循左--->根--->右
//创建一个集合来存储遍历的结点值
List<Integer> list = new ArrayList<>();
zx(list,root);
int[] arr = new int[list.size()];
for(int i = 0;i<arr.length;i++){
//将集合中的元素转存到数组中
arr[i] = list.get(i);
}
return arr;
}
private void zx(List<Integer> list,TreeNode root){
//递归到底情况
if(root==null){
return;
}
//遍历左树
zx(list,root.left);
//存入结点
list.add(root.val);
//遍历右树
zx(list,root.right);
}
}