美文网首页剑指offer最优解Java版
剑指offer最优解Java版-层序遍历二叉树

剑指offer最优解Java版-层序遍历二叉树

作者: 全菜工程师小辉 | 来源:发表于2019-06-25 14:16 被阅读1次

    题目描述

    从上往下打印出二叉树的每个节点,同层节点从左至右打印。如果节点为空则跳过不输出。

    解决方法

    思路是用linkedlist模拟一个队列来存储相应的TreeNode

    class TreeNode {
        int val = 0;
        TreeNode left = null;
        TreeNode right = null;
    
        public TreeNode(int val) {
            this.val = val;
        }
    }
    
    public class Solution {
        public ArrayList<Integer> PrintFromTopToBottom(TreeNode root) {
            ArrayList<Integer> list = new ArrayList<>();
            List<TreeNode> queue = new LinkedList<>();
            if (root == null) {
                return list;
            }
            queue.add(root);
            while (queue.size() != 0) {
                TreeNode temp = queue.remove(0);
                if (temp.left != null){
                    queue.add(temp.left);
                }
                if (temp.right != null) {
                    queue.add(temp.right);
                }
                list.add(temp.val);
            }
            return list;
        }
    }
    

    复杂度分析:

    • 时间复杂度:O(n)。
    • 空间复杂度:O(n)。
    哎呀,如果我的名片丢了。微信搜索“全菜工程师小辉”,依然可以找到我

    相关文章

      网友评论

        本文标题:剑指offer最优解Java版-层序遍历二叉树

        本文链接:https://www.haomeiwen.com/subject/qdutcctx.html