歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
您现在的位置: Linux教程網 >> UnixLinux >  >> Linux編程 >> Linux編程

按之字形順序打印二叉樹(二叉樹的層次遍歷)

題目描述

請實現一個函數按照之字形打印二叉樹,即第一行按照從左到右的順序打印,第二層按照從右至左的順序打印,第三行按照從左到右的順序打印,其他行以此類推。

和把二叉樹打印成多行(問題:鏈接)類似,都是對二叉樹的層次遍歷,只不過這個題要求正序逆序交叉輸出

# -*- coding:utf-8 -*-
# class TreeNode:
#    def __init__(self, x):
#        self.val = x
#        self.left = None
#        self.right = None
class Solution:
    def Print(self, pRoot):
        # write code here
        if not pRoot:
         return []

        flag = True
        result = []

        p = [pRoot]
        while p:
         res = []
         node = []

         for n in p:
          if n.left:
           node.append(n.left)
          if n.right:
           node.append(n.right)
          res.append(n.val)

         if flag == False:
          result.append(res[::-1])
          flag = True
         else:
          result.append(res)
          flag = False
         p = node

        return result

求二叉樹中兩個節點的最遠距離 http://www.linuxidc.com/Linux/2016-08/134049.htm

根據二叉樹的前序數組和中序序遍歷數組生成二叉樹 http://www.linuxidc.com/Linux/2016-09/135514.htm

判斷一個二叉樹是否是平衡二叉樹 http://www.linuxidc.com/Linux/2016-07/132842.htm

輕松搞定面試中的二叉樹題目 http://www.linuxidc.com/linux/2014-07/104857.htm

二叉樹的先序、中序、後序遍歷 http://www.linuxidc.com/Linux/2016-06/132504.htm

Copyright © Linux教程網 All Rights Reserved