1. 程式人生 > >103. Binary Tree Zigzag Level Order Traversal【M】

103. Binary Tree Zigzag Level Order Traversal【M】

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]
]
Subscribe to see which companies asked this question. 這道題的關鍵在於,怎麼判斷每一層,以及,怎麼zigzag地遍歷 一個是,每一層分別記錄,然後根據層數,把結果置反 另一個是,對每一層判斷,分奇數偶數,然後,把結果插入的時候,一個是不斷插在隊伍的最前面,另一個是不斷插在隊伍的最後
# Definition for a binary tree node.
# class TreeNode(object):
#     def __init__(self, x):
#         self.val = x
#         self.left = None
#         self.right = None

class Solution(object):
    def zigzagLevelOrder(self, root):
        if not root:
            return []

        s = [root]
        s1 = []
        level = 1
        res = []
        while 1:
            temp = []
            for i in s:
                if level % 2 == 1:
                    temp += i.val,
                else:
                    temp = [i.val] + temp

                if i.left:
                    s1 += i.left,
                if i.right:
                    s1 += i.right,
            level += 1
            #print temp
            res += temp,
            if s1 == []:
                break
            s = s1[:]
            s1 = []
        return res


相關推薦

103. Binary Tree Zigzag Level Order TraversalM

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

103. Binary Tree Zigzag Level Order Traversal

itl eve lean cnblogs lee empty for evel ive 題目: Given a binary tree, return the zigzag level order traversal of its nodes‘ values. (ie, f

103 Binary Tree Zigzag Level Order Traversal 二叉樹的鋸齒形層次遍歷

bsp size light emp == push 鋸齒形 .com null 給定一個二叉樹,返回其節點值的鋸齒形層次遍歷。(即先從左往右,再從右往左進行下一層遍歷,以此類推,層與層之間交替進行)。例如:給定二叉樹 [3,9,20,null,null,15,7],

Leetcode | 103. Binary Tree Zigzag Level Order Traversal

return ble end node == 層次 ++ ems flag 題目:二叉樹的鋸齒形層次遍歷 1 /** 2 * Definition for a binary tree node. 3 * struct TreeNode { 4 *

[leetcode]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

Leetcode 103. Binary Tree Zigzag Level Order Traversal

文章作者:Tyan 部落格:noahsnail.com  |  CSDN  |  簡書 1. Description 2. Solution /** * Definition for a binar

[LeetCode] 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

LeetCode 103.Binary Tree Zigzag Level Order Traversal (二叉樹的鋸齒形層次遍歷)

題目描述: 給定一個二叉樹,返回其節點值的鋸齒形層次遍歷。(即先從左往右,再從右往左進行下一層遍歷,以此類推,層與層之間交替進行)。 例如: 給定二叉樹 [3,9,20,null,null,15,7],     3    / \   9  20     /  \  

[leetcode] 103 Binary Tree Zigzag Level Order Traversal (Medium)

原題連結 題目要求以“Z”字型遍歷二叉樹,並存儲在二維數組裡。 利用BFS,對每一層進行遍歷。對於每一層是從左還是從右,用一個整數型判斷當前是偶數行還是奇數行就可以了。 class Solution {

#Leetcode# 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

103. Binary Tree Zigzag Level Order Traversal - Medium

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

LeetCode--103. Binary Tree Zigzag Level Order Traversal

題目連結:https://leetcode.com/problems/binary-tree-zigzag-level-order-traversal/ 這個是接著上一篇寫的,思路有點像,不過要新增一個標誌符來判斷是從左往右加入連結串列中,還是從右往左,這個跟上一篇差不多。我用的是層序數的奇偶性

leetcode103.(Medium)Binary Tree Zigzag Level Order Traversal

解題思路: 維護兩個棧,輪番記錄每一層的結點 時間複雜度:O(n) 空間複雜度:O(n) 提交程式碼: class Solution { public List<List<Integer>> zigzagLevelOrder(TreeNod

leetcode-103-二叉樹的鋸齒形層次遍歷(binary tree zigzag level order traversal)-java

題目及測試 package pid103; import java.util.List; /* 二叉樹的鋸齒形層次遍歷 給定一個二叉樹,返回其節點值的鋸齒形層次遍歷。(即先從左往右,再從右往左進行下一層遍歷,以此類推,層與層之間交替進行)。 例如: 給定二叉樹 [3,9,20,nul

leetcode 103. 二叉樹的鋸齒形層次遍歷(Binary Tree Zigzag Level Order Traversal)

root clas {} struct rsa level binary list for 目錄 題目描述: 示例: 解法: 題目描述: 給定一個二叉樹,返回

binary-tree-zigzag-level-order-traversal——二叉樹分層輸出

tco oot zigzag ice class alt pre conf nbsp Given a binary tree, return the zigzag level order traversal of its nodes‘ values. (ie, from l

Lintcode 71 Binary Tree Zigzag Level Order Traversal

efi null new top def lint tac cnblogs ever Given a binary tree, return the zigzag level order traversal of its nodes‘ values. (ie, from l

[LeetCode]Binary Tree Level Order Traversal (I II)和Binary Tree Zigzag Level Order Traversal

Binary Tree Level Order Traversal題目描述: Given a binary tree, return the zigzag level order traversal of its nodes’ values. (ie, fro

[LeetCode] 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 alt

LeetCode刷題Medium篇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