题目描述
请实现一个函数按照之字形打印二叉树,即第一行按照从左到右的顺序打印,第二层按照从右至左的顺序打印,第三行按照从左到右的顺序打印,其他行以此类推。
解题思路
使用之字形打印二叉树,其实际上是按层次遍历二叉树,将遍历结果保存到列表中,当层数为偶数层时,将列表翻转逆序排列
代码
# -*- 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 pRoot == None:
return []
else:
result = []
node_list = [pRoot]
row = 1
while node_list:
row_list = []
child_list = []
for i in node_list:
row_list.append(i.val)
if i.left:
child_list.append(i.left)
if i.right:
child_list.append(i.right)
node_list = child_list
if row % 2 == 0:
row_list.reverse()
result.append(row_list)
row += 1
return result
Date
2020–4--28
自己选择的路,跪着也要把它走完,加油!!!希望不负青春,不留遗憾