zoukankan      html  css  js  c++  java
  • 剑指Offer 32 从上到下打印二叉树

    从上到下打印二叉树

    从上往下打印出二叉树的每个节点,同层节点从左至右打印。

     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
  • 相关阅读:
    java内部类与其他类变量之间的调用方式
    java线程数设置和系统cpu的关系
    IDEA设置方法自动显示参数提示
    (十)学生课程表查询
    (九)协处理器
    (八)filter的使用
    (七)多线程写入数据
    (六)mapreduce和Hbase集成
    (五)阅读推荐
    (四)region代码实现
  • 原文地址:https://www.cnblogs.com/asenyang/p/11013891.html
Copyright © 2011-2022 走看看