《剑指offer》 第32.1题 从上往下打印二叉树
从上往下打印二叉树
https://www.nowcoder.com/practice/7fe2212963db4790b57431d9ed259701?tpId=13&tqId=11175&tPage=2&rp=2&ru=/ta/coding-interviews&qru=/ta/coding-interviews/question-ranking
题目描述
从上往下打印出二叉树的每个节点,同层节点从左至右打印。
根据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; } }
白的不能再白的小白想刷剑指offer 文章被收录于专栏
刷刷题