107. 二叉树的层次遍历 II
给定一个二叉树,返回其节点值自底向上的层次遍历。 (即按从叶子节点所在层到根节点所在的层,逐层从左向右遍历)
例子
例如:给定二叉树 [3,9,20,null,null,15,7],3 / \920/\ 15 7返回其自底向上的层次遍历为:[[15,7],[9,20],[3]]
代码
public List<List<Integer>> levelOrderBottom(TreeNode root) { LinkedList<List<Integer>> lList = new LinkedList<>();Queue<TreeNode> q = new LinkedList<TreeNode>();if(root == null){return lList;}q.add(root);while(!q.isEmpty()){int size = q.size();List<Integer> l = new LinkedList<>();while(size != 0){--size;TreeNode tN = new TreeNode();tN = q.poll();l.add(tN.val);if(tN.left != null){q.add(tN.left);}if(tN.right != null){q.add(tN.right);}}lList.addFirst(l);}//int num = lList.size();//for (int i = 0; i < num/2; i++) {//List<Integer> l = new LinkedList<>();//l = lList.get(i);//lList.set(i, lList.get(num - 1 -i));//lList.set((num - 1 -i), l);//}return lList;
思路
和正常的遍历类似,但是要注意题目是要放在链表里面。
注意事项
待优化
郑重声明:本文版权归原作者所有,转载文章仅为传播更多信息之目的,如作者信息标记有误,请第一时间联系我们修改或删除,多谢。