這是我第一次寫的(結果無誤但不知為何超時。。。):
public
class
solution
}//判斷根節點在in陣列中的位置
if(a ==0)
else
if(a == pre.length-1)
else
}//start為其子樹的根節點在pre陣列中的位置
private treenode constructlefttree
(int
pre,
int[
] in,
int a,
int start)
}//判斷根節點在in陣列中的位置
if(a1 ==0)
else
if(a1 == a)
else}}
private treenode constructrighttree
(int
pre,
int[
] in,
int a,
int start)}if
(a1 == a)
else
if(a1 == pre.length-1)
else}}
public
static
void
main
(string[
] args)
;int
in =
; solution solution =
newsolution()
; long starttime = system.
currenttimemillis()
; treenode treenode = solution.
reconstructbinarytree
(pre,in)
; system.out.
println
(treenode.right.left.val)
; long endtime = system.
currenttimemillis()
; long temptime =
(endtime - starttime)
; system.out.
println(+
(((temptime/
86400000
)>0)
?((temptime/
86400000)+
"d"):""
)+((
((temptime/
86400000
)>0)
||((temptime%
86400000
/3600000
)>0)
)?((temptime%
86400000
/3600000)+
"h"):(
""))+
((((temptime/
3600000
)>0)
||((temptime%
3600000
/60000
)>0)
)?((temptime%
3600000
/60000)+
"m"):(
""))+
((((temptime/
60000
)>0)
||((temptime%
60000
/1000
)>0)
)?((temptime%
60000
/1000)+
"s"):(
""))+
((temptime%
1000)+
"ms"))
;}}class
treenode
}
5
public
class
solution
//前序遍歷和中序遍歷序列
private treenode constructbinarytree
(int
pre,
int startpre,
int endpre,
int[
] in,
int startin,
int endin)
return root;
}}
劍指offer 重建二叉樹
重建二叉樹2.cpp 定義控制台應用程式的入口點。題目描述 輸入乙個二叉樹的前序遍歷和中序遍歷,輸出這顆二叉樹 思路 前序遍歷的第乙個節點一定是這個二叉樹的根節點,這個節點將二叉樹分為左右子樹兩個部分,然後進行遞迴求解 include stdafx.h include vector using na...
《劍指offer》重建二叉樹
輸入某二叉樹的前序遍歷和中序遍歷的結果,請重建出該二叉樹。假設輸入的前序遍歷和中序遍歷的結果中都不含重複的數字。例如,則重建二叉樹並返回。輸入乙個樹的前序和中序,例如輸入前序遍歷序列和中序遍歷序列 根據輸入的前序和中序,重建乙個該二叉樹,並返回該樹的根節點。definition for binary...
劍指offer 重建二叉樹
題目描述 輸入某二叉樹的前序遍歷和中序遍歷的結果,請重建出該二叉樹。假設輸入的前序遍歷和中序遍歷的結果中都不含重複的數字。例如輸入前序遍歷序列和中序遍歷序列,則重建二叉樹並返回。definition for binary tree struct treenode class solution if ...