[LeetCode]题解(python):103 Binary Tree Zigzag Level Order Traversal

Posted loadofleaf

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了[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

 

以上是关于[LeetCode]题解(python):103 Binary Tree Zigzag Level Order Traversal的主要内容,如果未能解决你的问题,请参考以下文章

LeetCode103 BinaryTreeZigzagLevelOrderTraversal(二叉树Z形层次遍历) Java题解

精选力扣500题 第10题 LeetCode 103. 二叉树的锯齿形层序遍历 c++详细题解

《LeetCode之每日一题》:103.复原 IP 地址

LeetCode第103题—二叉树的锯齿形层序遍历—Python实现

python-leetcode103-树的宽度遍历二叉树的锯齿形层次遍历

Leetcode刷题Python103. 二叉树的锯齿形层序遍历