网站建设资讯

NEWS

网站建设资讯

怎么从上到下打印python二叉树

本篇文章给大家分享的是有关怎么从上到下打印python二叉树,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。

大武口网站建设公司创新互联建站,大武口网站设计制作,有大型网站制作公司丰富经验。已为大武口上千多家提供企业网站建设服务。企业网站搭建\外贸网站制作要多少钱,请找那个售后服务好的大武口做网站的公司定做!

主要记录一下从上到下打印二叉树

题目

从上到下按层打印二叉树,同一层的节点按从左到右的顺序打印,每一层打印到一行。

 

例如:
给定二叉树: [3,9,20,null,null,15,7],

    3
   / \
  9  20
    /  \
   15   7

返回其层次遍历结果:

[
  [3],
  [9,20],
  [15,7]
]

 

提示:

    节点总数 <= 1000

注意:本题与主站 102 题相同:https://leetcode-cn.com/problems/binary-tree-level-order-traversal/

来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/cong-shang-dao-xia-da-yin-er-cha-shu-ii-lcof
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

题解

/**
 * Definition for a binary tree node.
 * public class TreeNode {
 *     int val;
 *     TreeNode left;
 *     TreeNode right;
 *     TreeNode(int x) { val = x; }
 * }
 */
class Solution {
    public List> levelOrder(TreeNode root) {
        if (root == null) {
            return Collections.emptyList();
        }

        Queue queue = new LinkedList();
        queue.offer(root);
        List> result = new ArrayList();
        while (!queue.isEmpty()) {
            List list = new ArrayList<>();
                int length = queue.size();
                for (int i=0; i< length; i++) {
                    TreeNode node = (TreeNode)queue.poll();
                    if (node != null) {
                        list.add(node.val);
                        queue.offer(node.left);
                        queue.offer(node.right);
                    }
                }
            if (!list.isEmpty()){
                result.add(list);  
            }  
        }

        return result;
    }
}

这是二叉树层次遍历的一个变种,区别在于每次poll的之前需要先记录下当前queue的size,即当前层的节点个数,然后按这个size去pull。

以上就是怎么从上到下打印python二叉树,小编相信有部分知识点可能是我们日常工作会见到或用到的。希望你能通过这篇文章学到更多知识。更多详情敬请关注创新互联行业资讯频道。


网站标题:怎么从上到下打印python二叉树
浏览地址:http://cdweb.net/article/gseepg.html