从上往下打印出二叉树的每个节点,同层节点从左至右打印。
1 # -*- coding:utf-8 -*- 2 # class TreeNode: 3 # def __init__(self, x): 4 # self.val = x 5 # self.left = None 6 # self.right = None 7 class Solution: 8 # 返回从上到下每个节点值列表,例:[1,2,3] 9 def __init__(self): 10 self.list = [] 11 12 def levelOrder(self,level): 13 count = len(level) 14 while count > 0: 15 root = level.pop(0) 16 self.list.append(root.val) 17 if root.left != None: 18 level.append(root.left) 19 if root.right != None: 20 level.append(root.right) 21 count -= 1 22 if len(level) > 0: 23 self.levelOrder(level) 24 25 26 def PrintFromTopToBottom(self, root): 27 if root == None: 28 return self.list 29 else: 30 level = [] 31 level.append(root) 32 self.levelOrder(level) 33 return self.list 34 # write code here
1 # -*- coding:utf-8 -*- 2 # class TreeNode: 3 # def __init__(self, x): 4 # self.val = x 5 # self.left = None 6 # self.right = None 7 class Solution: 8 # 返回二维列表[[1,2],[4,5]] 9 def __init__(self): 10 self.list = [] 11 self.result = [] 12 13 def levelOrder(self,level): 14 count = len(level) 15 while count > 0: 16 root = level.pop(0) 17 self.list.append(root.val) 18 if root.left != None: 19 level.append(root.left) 20 if root.right != None: 21 level.append(root.right) 22 count -= 1 23 if len(self.list) > 0: 24 self.result.append(self.list[:]) 25 self.list = [] 26 if len(level) > 0: 27 self.levelOrder(level) 28 29 def Print(self, pRoot): 30 if pRoot == None: 31 return self.list 32 else: 33 level = [] 34 level.append(pRoot) 35 self.levelOrder(level) 36 return self.result 37 # write code here
1 # -*- coding:utf-8 -*- 2 # class TreeNode: 3 # def __init__(self, x): 4 # self.val = x 5 # self.left = None 6 # self.right = None 7 class Solution: 8 # 返回二维列表[[1,2],[4,5]] 9 def __init__(self): 10 self.list = [] 11 self.result = [] 12 self.rev = -1 13 14 def levelOrder(self,level): 15 count = len(level) 16 while count > 0: 17 root = level.pop(0) 18 self.list.append(root.val) 19 if root.left != None: 20 level.append(root.left) 21 if root.right != None: 22 level.append(root.right) 23 count -= 1 24 if len(self.list) > 0: 25 self.rev *= -1 26 self.result.append(self.list[::self.rev]) 27 self.list = [] 28 if len(level) > 0: 29 self.levelOrder(level) 30 def Print(self, pRoot): 31 if pRoot == None: 32 return self.list 33 else: 34 level = [] 35 level.append(pRoot) 36 self.levelOrder(level) 37 return self.result 38 # write code here