給定乙個二叉樹,返回其節點值自底向上的層次遍歷。 (即按從葉子節點所在層到根節點所在的層,逐層從左向右遍歷)
例如:給定二叉樹 [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...