zoukankan      html  css  js  c++  java
  • 102. Binary Tree Level Order Traversal

    Given a binary tree, return the level order traversal of its nodes' values. (ie, from left to right, level by level).

    For example:
    Given binary tree [3,9,20,null,null,15,7],

        3
       / 
      9  20
        /  
       15   7
    

    return its level order traversal as:

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

    # Definition for a binary tree node.
    # class TreeNode(object):
    #     def __init__(self, x):
    #         self.val = x
    #         self.left = None
    #         self.right = None
    import Queue
    
    class Solution(object):
        def levelOrder(self, root):
            """
            :type root: TreeNode
            :rtype: List[List[int]]
            """
            rlist=[]
            if root==None:
                return rlist
            q=Queue.Queue()
            q.put(root)
            while q.empty()!=True:
                count=q.qsize()
                sublist=[]
                for i in range(count): 
                    x=q.get()
                    sublist.append(x.val)
                    if x.left!=None: q.put(x.left)
                    if x.right!=None: q.put(x.right)
                rlist.append(sublist)
            return rlist   
    # Definition for a binary tree node.
    # class TreeNode(object):
    #     def __init__(self, x):
    #         self.val = x
    #         self.left = None
    #         self.right = None
    
    class Solution(object):
        def levelOrder(self, root):
            """
            :type root: TreeNode
            :rtype: List[List[int]]
            """
            if root ==None:
                return []
            rlist=[]
            nodelist=[root]
            while nodelist!=[]:
                sublist=[l.val for l in nodelist if l]
                templist=[]
                for i in nodelist:
                    if i!=None:
                        if i.left:templist.append(i.left)
                        if i.right:templist.append(i.right)
                nodelist= templist  
                rlist.append(sublist)
            return rlist   
  • 相关阅读:
    题解报告:hdu1995汉诺塔V(递推dp)
    黑色CSS3立体动画菜单
    jQuery计算器插件
    CSS3动画库animate.css
    缩略图悬浮效果的jQuery焦点图
    CSS伪元素实现的3D按钮
    CSS3 3D旋转按钮对话框
    jQuery仿Android锁屏图案应用
    jQuery横向图片手风琴
    jQuery滑动杆打分插件
  • 原文地址:https://www.cnblogs.com/rocksolid/p/6292188.html
Copyright © 2011-2022 走看看