【剑指Offer】按之字形顺序打印二叉树 解题报告(Python)

时间:2023-03-08 21:42:31

【剑指Offer】按之字形顺序打印二叉树 解题报告(Python)

标签(空格分隔): 剑指Offer


题目地址:https://www.nowcoder.com/ta/coding-interviews

题目描述:

请实现一个函数按照之字形打印二叉树,即第一行按照从左到右的顺序打印,第二层按照从右至左的顺序打印,第三行按照从左到右的顺序打印,其他行以此类推。

解题方法

层次遍历的做法我们都会了,这个题使用先遍历,然后再把奇数层翻转的方式,虽然有点笨,但是写出来很快。

代码:

# -*- coding:utf-8 -*-
# class TreeNode:
# def __init__(self, x):
# self.val = x
# self.left = None
# self.right = None
class Solution:
def Print(self, pRoot):
if not pRoot: return []
res = []
self.level(pRoot, 0, res)
for level in range(1, len(res), 2):
res[level] = res[level][::-1]
return res def level(self, root, level, res):
if not root: return
if level == len(res):
res.append([])
res[level].append(root.val)
if root.left:
self.level(root.left, level + 1, res)
if root.right:
self.level(root.right, level + 1, res)

Date

2018 年 3 月 28 日 – 北京雾霾+沙尘暴,我的天。。