Hackerrank Day 23: BST Level-Order Traversal 逐层遍历

*爱你&永不变心* 提交于 2020-01-11 16:10:43

CODE

import sys

class Node:
    def __init__(self,data):
        self.right=self.left=None
        self.data = data
class Solution:
    def insert(self,root,data):
        if root==None:
            return Node(data)
        else:
            if data<=root.data:
                cur=self.insert(root.left,data)
                root.left=cur
            else:
                cur=self.insert(root.right,data)
                root.right=cur
        return root

    def levelOrder(self,root):
        #Write your code here
        nodes=[]#将节点存在list中
        results=''
        if root.data is not None:
            nodes.append(root)
        while nodes:
            tmp=nodes[0]
            results=results+str(tmp.data)+' '
            #print(str(tmp.data)+' ',end='')
            if tmp.left is not None:
                nodes.append(tmp.left)
            if tmp.right is not None:
                nodes.append(tmp.right)
            nodes.pop(0)#将对已经展开并存入result中的节点删除
        print(results)
T=int(input())
myTree=Solution()
root=None
for i in range(T):
    data=int(input())
    root=myTree.insert(root,data)
myTree.levelOrder(root)

 

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!