题目描述
从上往下打印出二叉树的每个节点,同层节点从左至右打印。
根据offer书上,这个题有几个变形,首先是普通版,其次是换行打印,最后是之字型打印
其他两题牛客都有,所以只记录普通版
首先是节点入队列,队列为空说明遍历结束,队列不为空时,队首节点出队,并进行相关操作,再将该节点的两个子节点入队即可。层次遍历使用队列,深度遍历使用栈。
import java.util.Queue;
import java.util.ArrayList;
import java.util.LinkedList;
public class Solution {
public ArrayList<Integer> printTree(TreeNode root) {
Queue<TreeNode> queue = new LinkedList<>();
ArrayList arr = new ArrayList<>();
if(root == null) {
return arr;
}
queue.offer(root);
while(queue.size()!=0){
TreeNode node = queue.poll();
arr.add(node.val);
if(node.left != null)
queue.offer(node.left);
if(node.right != null)
queue.offer(node.right);
}
return arr;
}
}


京公网安备 11010502036488号