zoukankan      html  css  js  c++  java
  • [LeetCode]题解(python):103 Binary Tree Zigzag Level Order Traversal

    题目来源


    https://leetcode.com/problems/binary-tree-zigzag-level-order-traversal/

    Given a binary tree, return the zigzag level order traversal of its nodes' values. (ie, from left to right, then right to left for the next level and alternate between).


    题意分析


    Input:一个二叉树

    Output:一个list

    Conditions:每层组成一个list,输出每层的集合,注意是zigzag的,意思是,当为偶数层时,尾部添加;当为奇数层时,首部添加。


    题目思路


    判断是不是偶数层,决定是否尾部添加


    AC代码(Python)

     1 # Definition for a binary tree node.
     2 # class TreeNode(object):
     3 #     def __init__(self, x):
     4 #         self.val = x
     5 #         self.left = None
     6 #         self.right = None
     7 
     8 class Solution(object):
     9     def preorder(self, root, level, res):
    10         if root:
    11             if len(res) < level + 1: res.append([])
    12             if level % 2 == 0: 
    13                 res[level].append(root.val)
    14             else:
    15                 res[level].insert(0,root.val)
    16             self.preorder(root.left, level + 1, res)
    17             self.preorder(root.right, level + 1, res)
    18     def zigzagLevelOrder(self, root):
    19         """
    20         :type root: TreeNode
    21         :rtype: List[List[int]]
    22         """
    23         res = []
    24         self.preorder(root, 0, res)
    25         print res
    26         return res
  • 相关阅读:
    POJ-3984-迷宫问题(bfs+记录路径)
    StringBuilder与String的区别
    845. 八数码(bfs+map)
    844. 走迷宫(bfs模板)
    843. n-皇后问题(dfs+输出各种情况)
    洛谷 P1337 [JSOI2004]平衡点 / 吊打XXX
    【模板】 线性筛质数
    接文游戏
    【NOIP2011提高组】计算系数
    洛谷 P3197 [HNOI2008]越狱
  • 原文地址:https://www.cnblogs.com/loadofleaf/p/5502296.html
Copyright © 2011-2022 走看看