zoukankan      html  css  js  c++  java
  • 103.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).

    For example:
    Given binary tree [3,9,20,null,null,15,7],

        3
       / 
      9  20
        /  
       15   7
    

    return its zigzag level order traversal as:

    [
    [3],
    [20,9],
    [15,7]
    ]

    # Definition for a binary tree node.
    class TreeNode:
        def __init__(self, x):
            self.val = x
            self.left = None
            self.right = None
    
    class Solution:
        def zigzagLevelOrder(self, root):
            """
            :type root: TreeNode
            :rtype: List[List[int]]
            """
            res = []
            level = []
            if root is None:
                return []
            level.append(root)
            while len(level):
                temp = [] #为了保存每一层的结果
                l = len(level)
                for i in range(l): #为了遍历每一层的节点
                    node = level.pop(0)
                    temp.append(node.val)
                    if node.left:
                        level.append(node.left)
                    if node.right:
                        level.append(node.right)
                res.append(temp)
            for i in range(len(res)):
                if i%2==1:
                    res[i].reverse()
            return res
    
    
    
  • 相关阅读:
    自动化骨架屏生成思路
    npm查看包版本
    icon最佳实践
    node多进程模块
    node环境清空控制台的代码
    commonjs规范
    package.json中的devDependencies和dependencies有啥区别?
    delphi ExecWB
    delphi execCommand
    delphi 带历史信息的菜单
  • 原文地址:https://www.cnblogs.com/bernieloveslife/p/9760575.html
Copyright © 2011-2022 走看看