zoukankan      html  css  js  c++  java
  • 剑指offer 二叉树的层序遍历

    剑指offer 牛客网 二叉树的层序遍历

    # -*- coding: utf-8 -*-
    """
    Created on Tue Apr  9 09:33:16 2019
    
    @author: Administrator
    层序遍历:从上往下打印出二叉树的每个节点,同层节点从左至右打印。
                1
               /  
              2    3
             /   / 
            4  5 6   7
    返回列表:[1,2,3,4,5,6,7]
    """
    
    # -*- coding:utf-8 -*-
    class TreeNode:
        def __init__(self, x):
            self.val = x
            self.left = None
            self.right = None
    class Solution:
        #层序遍历
        def PrintFromTopToBottom(self, root):
            # write code here
            res,result = [],[]
            if root:    #非空节点,若空直接返回空
                res.append(root)    #先将头结点加入其中
                i = 0
                while True:
                    if res[i].left:     #如果左节点非空将其加入
                        res.append(res[i].left)
                    if res[i].right:    #同理,右节点非空将其加入
                        res.append(res[i].right)
                    i += 1
                    if i == len(res):   #退出条件是当遍历到列表的长度时候退出
                        break
                for i in res:   #将节点的值加入到列表返回
                    if i:   #返回非空节点的值
                        result.append(i.val)
            return result
            
    if __name__ == '__main__':
        solution = Solution()
        node_left = TreeNode(4)
        node_right = TreeNode(5)
        root_left = TreeNode(2)
        root_left.left = node_left
        root_left.right = node_right
        
        node_left = TreeNode(6)
        node_right = TreeNode(7)
        root_right = TreeNode(3)
        root_right.left = node_left
        root_right.right = node_right
        
        root = TreeNode(1)
        root.left = root_left
        root.right = root_right
    
        res = solution.PrintFromTopToBottom(root)
        print(res)
  • 相关阅读:
    【转载】深入浅出VA函数
    oracle数据库怎么创建数据库实例
    2.4 OpenEuler中C语言中的函数调用测试(选做)
    OpenEuler 中C与汇编的混合编程(选做)
    程序运行
    改进ls的实现(课下作业)
    学习笔记12
    实验四 Web服务器1socket编程
    实验四 Web服务器2
    学习6
  • 原文地址:https://www.cnblogs.com/missidiot/p/10675215.html
Copyright © 2011-2022 走看看