# 请实现一个函数按照之字形打印二叉树,即第一行按照从左到右的顺序打印,
# 第二层按照从右至左的顺序打印,第三行按照从左到右的顺序打印,其他行以此类推。
# -*- coding:utf-8 -*-
class TreeNode:
def __init__(self, x):
self.val = x
self.left = None
self.right = None
class Solution:
def Print(self, pRoot):
head = pRoot
if head == None:
return []
node_list = [head]
vals = []
rotation = False #控制变量反转
while node_list != []:
vals_i = [i.val for i in node_list] #储存当前行节点
if rotation:
vals_i.reverse()
rotation = not rotation
# 寻找下一行节点
vals.append(vals_i)
tmp_nodes = []
for node in node_list:
if node.left != None:
tmp_nodes.append(node.left)
if node.right != None:
tmp_nodes.append(node.right)
node_list = tmp_nodes[:]
return vals
S = Solution()
a1 = TreeNode(10)
a2 = TreeNode(5)
a3 = TreeNode(12)
a4 = TreeNode(4)
a5 = TreeNode(7)
a1.left = a2
a1.right = a3
a3.left = a4
a3.right = a5
S.Print(a1)
(python)请实现一个函数按照之字形打印二叉树,即第一行按照从左到右的顺序打印,第二层按照从右至左的顺序打印,第三行按照从左到右的顺序打印,其他行以此类推。
猜你喜欢
转载自blog.csdn.net/yg838457845/article/details/81145815
今日推荐
周排行