swift 演算法 簡單21 二叉樹的層次遍歷 II

2021-09-24 11:02:50 字數 705 閱讀 6916

給定乙個二叉樹,返回其節點值自底向上的層次遍歷。 (即按從葉子節點所在層到根節點所在的層,逐層從左向右遍歷)

例如:給定二叉樹 [3,9,20,null,null,15,7],

3/ \

9  20

/  \

15   7

返回其自底向上的層次遍歷為:

[[15,7],

[9,20],

[3]]

解法:

/**

* definition for a binary tree node.

* public class treenode

* }*/class solution

var values = [[int]]() //建立乙個返回陣列

var nodes = [root!] // 操作的root

while !nodes.isempty

values = values.reversed()

return values

}//得到 每一層的val 和下一層的node

func getnodes(_ nodes: [treenode]) -> (v: [int], nodes: [treenode])

if let r = n.right

}return (values, nextnodes)

}}

二叉樹的幾種簡單演算法

定義乙個二叉樹結點 typedef struct nodebintnode typedef bintnode bintree 計算二叉樹深度的演算法 二叉樹深度為左子樹,或右子樹的最大深度加上1 int bintreedepth bintree bt if depl depr return depl...

簡單二叉樹

algorithm.cpp 定義控制台應用程式的入口點。include stdafx.h include define d left 0 define d right 1 template struct bnode bnode plnode 左子樹 bnode prnode 右子樹 t pvalue...

二叉樹 排序二叉樹的簡單實現

二叉樹 排序二叉樹 include using namespace std 二叉樹的節點 date 資料 left 指向二叉樹的左子樹 right 指向二叉樹的右子樹 template struct node template class btree public btree root null c...