zoukankan      html  css  js  c++  java
  • 【剑指Offer】22从上往下打印二叉树

    题目描述

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

    时间限制:1秒;空间限制:32768K

    解题思路

    思路和层次遍历相似,定义两个list一个用来记录当前层的节点,一个用来记录当前每个节点的左右孩子节点,循环打印更新。

    Python代码:

    # -*- coding:utf-8 -*-
    # class TreeNode:
    #     def __init__(self, x):
    #         self.val = x
    #         self.left = None
    #         self.right = None
    class Solution:
        # 返回从上到下每个节点值列表,例:[1,2,3]
        def PrintFromTopToBottom(self, root):
            # write code here
            if not root:
                return []
            currentStack = [] #当前层的节点
            currentStack.append(root)
            result = []
            while len(currentStack)!=0:
                nextStack = [] #下一层的子节点
                for i in range(len(currentStack)):
                    result.append(currentStack[i].val)
                    if currentStack[i].left != None:
                        nextStack.append(currentStack[i].left)
                    if currentStack[i].right != None:
                        nextStack.append(currentStack[i].right)
                currentStack = nextStack
            return result
  • 相关阅读:
    django模板语言导入自定html文件内容
    django模板语言中的自定义函数
    ID3决策树
    K近邻算法
    Mini-Batch 、Momentum、Adam算法的实现
    python3安装scrapy教程
    numpy高级应用
    numpy.random随机数生成
    numpy 线性代数
    numpy文件操作
  • 原文地址:https://www.cnblogs.com/yucen/p/9912038.html
Copyright © 2011-2022 走看看