orden de impresión Binary Tree zig-zag
Título Descripción
favor de implementar una función de acuerdo con la impresión de un árbol binario en zigzag, es decir, la primera fila de izquierda a derecha de la impresión, el orden de impresión de la segunda capa es de derecha a izquierda, la tercera fila de izquierda a derecha de la impresión, otra la línea y así sucesivamente.
# -*- 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
resultarray = []
if not pRoot:
return resultarray
currnodes = [pRoot]
flag = True
while currnodes:
currvalues = []
nextnodes = []
for node in currnodes:
currvalues.append(node.val)
if node.left:
nextnodes.append(node.left)
if node.right:
nextnodes.append(node.right)
currnodes = nextnodes
resultarray.append(currvalues) if flag else resultarray.append(currvalues[::-1])
flag = not flag
return resultarray