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)
本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请
点击举报。