• JZ022从上往下打印二叉树


    从上往下打印二叉树

    题目描述

    从上往下打印出二叉树的每个节点,同层节点从左至右打印。

    题目链接: 从上往下打印二叉树

    代码

    import java.util.ArrayList;
    import java.util.LinkedList;
    import java.util.Queue;
    
    /**
     * 标题:从上往下打印二叉树
     * 题目描述
     * 从上往下打印出二叉树的每个节点,同层节点从左至右打印。
     * 题目链接:
     * https://www.nowcoder.com/practice/7fe2212963db4790b57431d9ed259701?tpId=13&&tqId=11175&rp=1&ru=/ta/coding-interviews&qru=/ta/coding-interviews/question-ranking
     */
    public class Jz22 {
    
        /**
         * 使用队列来进行层次遍历。
         * <p>
         * 不需要使用两个队列分别存储当前层的节点和下一层的节点,因为在开始遍历一层的节点时,当前队列中的节点数就是当前层的节点数,只要控制遍历这么多节点数,就能保证这次遍历的都是当前层的节点。
         *
         * @param root
         * @return
         */
        public ArrayList<Integer> printFromTopToBottom(TreeNode root) {
            Queue<TreeNode> queue = new LinkedList<TreeNode>();
            ArrayList<Integer> result = new ArrayList<Integer>();
            queue.add(root);
            while (!queue.isEmpty()) {
                int cnt = queue.size();
                while (cnt-- > 0) {
                    TreeNode t = queue.poll();
                    if (t == null) {
                        continue;
                    }
                    result.add(t.val);
                    queue.add(t.left);
                    queue.add(t.right);
                }
            }
            return result;
        }
    
        public static void main(String[] args) {
    
        }
    }
    

    【每日寄语】 每天给自己一个希望,试着不为明天而烦恼,不为昨天而叹息,只为今天更美好。

  • 相关阅读:
    apache+php+mysql配置
    欧拉函数知识点总结及代码模板及欧拉函数表
    栈排序
    codeforces 722C (并查集)
    北京网赛I题 hiho1391 (树状数组、区间覆盖最大值问题)
    HDU5898、 HDU 2089(数位DP)
    HDU 5876 (大连网赛1009)(BFS + set)
    codeforces 682D(DP)
    codeforces 666A (DP)
    codeforces 706D (字典树)
  • 原文地址:https://www.cnblogs.com/kaesar/p/15675792.html
Copyright © 2020-2023  润新知