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
  • 相关阅读:
    python基础之lambda,sort,filter,map,递归函数的运用
    python基础之生成器,生成器函数,列表推导式
    python基础之函数名的使用,闭包以及迭代器
    移动端自带框架
    app自动化环境部署和原理
    夜神模拟器连接不上adb
    Appium下载和配置
    word如何添加下滑线
    loadrnner组成
    性能测试
  • 原文地址:https://www.cnblogs.com/loadofleaf/p/5502296.html
Copyright © 2011-2022 走看看