輸入一棵二叉樹,求該樹的深度。從根結點到葉結點依次經過的結點(含根、葉結點)形成樹的一條路徑,最長路徑的長度為樹的深度。
第一行輸入有n,n表示結點數,結點號從1到n。根結點為1。 n <= 10。
接下來有n行,每行有兩個個整型a和b,表示第i個節點的左右孩子孩子。a為左孩子,b為右孩子。當a為-1時,沒有左孩子。當b為-1時,沒有右孩子。
輸出乙個整型,表示樹的深度。
32 3
-1 -1
-1 -1
#include
#include
#include
#include
using
namespace
std;
struct treenode;
treenode tree[20];
int depthtree(int x, int n)
int leftdepth = depthtree(tree[x].lchild, n);
int rightdepth = depthtree(tree[x].rchild, n);
return leftdepth >= rightdepth ? leftdepth+1 : rightdepth+1;
}int main()
int depth = depthtree(1, n);
cout
<< depth << endl;
}return
0;}
九度OJ 1113 二叉樹
題目1113 二叉樹 時間限制 1 秒 記憶體限制 32 兆 特殊判題 否 提交 2599 解決 778 題目描述 如上所示,由正整數1,2,3 組成了一顆特殊二叉樹。我們已知這個二叉樹的最後乙個結點是n。現在的問題是,結點m所在的子樹中一共包括多少個結點。比如,n 12,m 3那麼上圖中的結點13...
九度OJ 1113 二叉樹
做本題的時候,第一次用思路最簡單但是時空複雜度較差的遞迴去遍歷其子樹,結果tle。於是乎只能改用數學計算的方法,去逐層累加。故本題實際上考察點是 完全二叉樹節點個數的計算 題目描述 如上所示,由正整數1,2,3 組成了一顆特殊二叉樹。我們已知這個二叉樹的最後乙個結點是n。現在的問題是,結點m所在的子...
九度OJ 1113 二叉樹
題目描述 如上所示,由正整數1,2,3 組成了一顆特殊二叉樹。我們已知這個二叉樹的最後乙個結點是n。現在的問題是,結點m所在的子樹中一共包括多少個結點。比如,n 12,m 3那麼上圖中的結點13,14,15以及後面的結點都是不存在的,結點m所在子樹中包括的結點有3,6,7,12,因此結點m的所在子樹...