·如何实现一个二叉树的层次遍历:
方法一使用递归(借助辅助参数level)
public class cengCiErChaShu {
//使用递归
List<List<Integer>> list = new ArrayList<>();
public List<List<Integer>> levelOrder(TreeNode root){
if(root == null) {
return list;
}
helper(root,0);
return list;
}
public void helper(TreeNode root, int level) {
//查看是否有这一层,没有创建一个新的List
if(list.size() == level) {
list.add(new ArrayList<Integer>());
}
list.get(level).add(root.val);
//进行该节点的左子节点
if(root.left != null) {
//进入到下层进行遍历
helper(root.left, level + 1);
}
//进行右子节点的
if(root.right != null) {
helper(root.right, level + 1);
}
}
}