[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