• [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
  • 相关阅读:
    RHEL7挂载ISO做本地yum
    服务器虚拟化架构突出优势
    国内公共DNS
    世界上最小的发行版之一Tiny Core
    VMware v12.1.1 专业版以及永久密钥
    Webbench网站压力测试
    Web.xml配置详解之context-param
    SpringMvc自动代理
    SpringMvc aop before
    SpringMvc 面向切面1
  • 原文地址:https://www.cnblogs.com/loadofleaf/p/5502296.html
Copyright © 2020-2023  润新知