打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
102. Binary Tree Level Order Traversal
##
## https://leetcode.com/problems/binary-tree-level-order-traversal/description/
##  
##
class TreeNode(object):
    def __init__(self, val=None, left=None, right=None):
        self.val =  val
        self.left  = left
        self.right = right

class Solution(object):
   def levelOrder(self, root):
       ans, level = [], [root]  #list
       while root and level:
          ans.append([node.val for node in level])
          LRpair = [(node.left, node.right) for node in level]
          level = [leaf for LR in LRpair for leaf in LR if leaf]
       return ans
   def levelOrder_2(self, root):
       level = [root]
       ans = []
       while level:
          ans.append([node.val for node in level])
          level =[ n for node in level for n in (node.left, node.right) if n]
       return ans


if __name__ == "__main__" :
#       D
#    B      E      
#  A   C      G
#            F
  tree=TreeNode('D',TreeNode('B',TreeNode('A'),TreeNode('C')),TreeNode('E',right=TreeNode('G',TreeNode('F'))))
  s = Solution()
  #ans = new Solution().levelOrder(tree)
  ans = s.levelOrder(tree)
  print(ans)
~             


##
## https://leetcode.com/problems/binary-tree-level-order-traversal/description/
## 
##
class TreeNode(object):
    def __init__(self, val=None, left=None, right=None):
        self.val =  val
        self.left  = left
        self.right = right

class Solution(object):
   def levelOrder(self, root):
       ans, level = [], [root]  #list
       while root and level:
          ans.append([node.val for node in level])
          LRpair = [(node.left, node.right) for node in level]
          #level = [leaf for LR in LRpair for leaf in LR if leaf]
          level = []
          for LR in LRpair:
              print("----LR---")
              print(LR)
              for leaf in LR:
                 print("----leaf---")
                 print(leaf)
                 if leaf != None:
                    level.append(leaf)
                 else:
                    print("not put in level")
       return ans


if __name__ == "__main__" :
#       D
#    B      E     
#  A   C      G
#            F
  tree=TreeNode('D',TreeNode('B',TreeNode('A'),TreeNode('C')),TreeNode('E',right=TreeNode('G',TreeNode('F'))))
  s = Solution()
  #ans = new Solution().levelOrder(tree)
  ans = s.levelOrder(tree)
  print(ans)

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
一种快速的无监督的向量化方法做地标识别
根据JSON数据,生成TREE
序列化二叉树
Ext treeStore
AVL树详解
使用 Redis 解决“树”形数据的复杂查询
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服