1. 程式人生 > >[leetcode]Python實現-102.二叉樹的層次遍歷

[leetcode]Python實現-102.二叉樹的層次遍歷

102.二叉樹的層次遍歷

描述

思路:層次遍歷。定義兩個列表,儲存當前層的結點和下一層的結點。

# Definition for a binary tree node.
# class TreeNode:
#     def __init__(self, x):
#         self.val = x
#         self.left = None
#         self.right = None

class Solution:
    def levelOrder(self, root):
        """
        :type root: TreeNode
        :rtype: List[List[int]]
        """
if root is None: return [] current = [root] res = [] nxt = [] tmp_val = [] while len(current) > 0: tmp = current.pop(0) tmp_val.append(tmp.val) if tmp.left is not None: nxt.append(tmp.left) if
tmp.right is not None: nxt.append(tmp.right) if len(current) == 0: if nxt == []: if tmp_val: res.append(tmp_val) return res else: current = nxt nxt = [] res.append(tmp_val) tmp_val = []

相關推薦

[leetcode]Python實現-102.層次

102.二叉樹的層次遍歷 描述 思路:層次遍歷。定義兩個列表,儲存當前層的結點和下一層的結點。 # Definition for a binary tree node. # class TreeNode: # def __init_

python實現層次(寬度優先或叫廣度優先

1、何為層次遍歷       說白了,就是一層一層、由上至下、由左至右的搜尋遍歷二叉樹中的元素。                上面這個二叉樹,那麼層次遍歷的輸出應該是:1、2、

[leetcode-層次並統計每層節點數]--102. Binary Tree Level Order Traversal

Question 102. Binary Tree Level Order Traversal Given a binary tree, return the level order traversal of its nodes’ values. (ie

LeetCode層次逆序輸出(簡單

問題描述: 給定一個二叉樹,返回其節點值自底向上的層次遍歷。 (即按從葉子節點所在層到根節點所在的層,逐層從左向右遍歷) 例如: 給定二叉樹 [3,9,20,null,null,15,7], 3 / \ 9 20 / \ 15 7

LeetCode:Binary Tree Level Order Traversal層次

=======題目描述======= 題目連結:https://leetcode.com/problems/binary-tree-level-order-traversal/ 題目內容: Binary Tree Level Order Traversal Given a binar

LeetCode筆記——107層次

題目: 給定一個二叉樹,返回其節點值自底向上的層次遍歷。 (即按從葉子節點所在層到根節點所在的層,逐層從左向右遍歷) 例如: 給定二叉樹 [3,9,20,null,null,15,7], 3 / \ 9 20 / \ 15 7

層次(C語言實現

經過兩天長時間的學習, 通過研究佇列以及二叉樹的相關性質,終於寫出了二叉樹的層次遍歷。 該實現的核心就是使用佇列,每次把訪問到的節點的左右子樹放到佇列裡面去,出隊的時候同樣操作! 感謝@原來如此 , @AlexMok ,兩位同學,在小組相互學習的過程中收穫良

層次

!= problem splay color list gif 二叉樹層次遍歷 eno empty http://www.lintcode.com/zh-cn/problem/binary-tree-level-order-traversal/# 錯誤點:queue是抽象的

畢業了-java層次算法

== 需要 數據 nbsp 測試 class system col ava /*************************************** * 時間:2017年6月23日 * author:lcy * 內容:二叉樹的

畢業了C++層次

== 容器 null tdi 指針 creat tno bit stack //代碼經過測試,賦值粘貼即可用#include<iostream> #include<stdio.h> #include<stack> #include<

第六章例題層次

ear 指針 內存 寬度優先 def delete back blog value 1.指針實現 #include <iostream> #include <vector> #include <queue> #include <

Python資料結構——(先根,中根,後根)

先序遍歷:根左右 中序遍歷:左根右 後序遍歷:左右根 # -*- coding:utf-8 -*- # file: TreeTraversal.py # class BTree: # 二叉樹節點 def __init__(self, value):

(0)——實現

0.二叉樹的實現(C++) 未完,待補充 #include <iostream> #include<iostream> #include<queue> #include<stack> using namespace std; //二叉樹結點的

層次_判斷結點所屬層次

#include<stdlib.h> #include<stdio.h> #include<stack> #define N 50 using namespace std; typedef struct tree{ char ch; stru

層次列印

二叉樹層次遍歷列印,並且每層對應輸出換行(遍歷一層輸出後,下一層遍歷換行輸出)。 final static int MAX_NUM = 500 class TreeNode { //二叉樹結構 int val = 0; TreeNode left = null;

層次(Java版)

/** * Definition for a binary tree node. * public class TreeNode { * int val; * TreeNode left; * TreeNode right; * T

實現

0.二叉樹的實現(C++) 未完,待補充 #include <iostream> #include<iostream> #include<queue> #include<stack> using namespace std;

層次並列印行號——java

主要程式碼 public void levelOrderNew(TreeNode root) { TreeNode last=root; //當前行最右結點 TreeNode nlast = null; //下一行最右結點 TreeN

建立:層次--的寬度高度,後序--祖先節點

建立二叉樹,遍歷二叉樹.詳細介紹了層次遍歷和後序遍歷的應用. 層次遍歷:樹的高度,樹的寬度,每一層節點個數等 後序遍歷:根節點到某節點的路徑,兩個節點的最近公共祖先等 package tree; import java.util.LinkedList

層次--C語言

  之前寫了二叉樹的先序、中序、後序遍歷,這些遍歷都用到了棧結構。今天寫一下二叉樹的層次遍歷,層次遍歷用到的資料結構是佇列。   層次遍歷演算法中增加了三個int型資料,其中levelcount用於記錄現在處理的是樹的第幾層;curlevel用於記錄當前層還有幾個節點沒有被訪問過;nextl