《剑指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;
    }
}

刷刷题

全部评论

相关推荐

评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务