编程笔试(解析及代码实现):按之形顺序打印二叉树。请实现一个函数按照之字形打印二叉树,即第一行按照从左到右的顺序打印,第二层按照从右至左的顺序打印,第三行按照从左到右的顺序打印,其他行以此类推
目录
题目描述
按之形顺序打印二叉树。请实现一个函数按照之字形打印二叉树,即第一行按照从左到右的顺序打印,第二层按照从右至左的顺序打印,第三行按照从左到右的顺序打印,其他行以此类推。
代码实现
# -*- coding:utf-8 -*-
# class TreeNode:
# def __init__(self, x):
# self.val = x
# self.left = None
# self.right = None
# 算法思想类似于树层序遍历。先定义一个结果队列result=[],存储最终序列结果。定义一个方向direction=0,表示从左到右打印
# 接着定义一个end_node,表示第i层的最后一个结点。
# 开始遍历第i层,第i层遍历结束,将第i层遍历的结果存储到line_val队列中
# 当direction=0时,把line_val值添加到result中;当direction=1时,把line_val值从右到左添加到result中
# d