洛谷 P4913 二叉樹深度 (二叉樹 dfs)

2021-10-02 14:58:43 字數 702 閱讀 4547

題目傳送

看題解有大佬有用樹狀dp的,還有說正解是長鏈剖分。。。

我太菜了,上面那些都不會,用dfs遍歷ac了,不知道是不是資料太水讓我水過了。正應了acm圈一句名言「這題我雖然不會,但ac還是沒問題的」。

先用結構體建樹:

struct node tree[maxn]

;

輸入:

for

(int i =

1; i <= n; i++

) cin >> tree[i]

.l >> tree[i]

.r;

dfs遍歷樹並更新答案:

void

dfs(

int u,

int deep)

完整ac**:

#include

#include

using

namespace std;

#define maxn 1000000+10

struct node tree[maxn]

;int ans;

void

dfs(

int u,

int deep)

intmain

(void

)

洛谷 P4913 深基16 例3 二叉樹深度

給出每個節點的兩個兒子節點,建立一棵二叉樹 根節點為 11 如果是葉子節點,則輸入0 0。建好樹後希望知道這棵二叉樹的深度。二叉樹的深度是指從根節點到葉子結點時,最多經過了幾層。最多有 10 6106 個結點。無無 輸入 7 2 73 6 4 50 0 0 00 0 0 0 輸出 4這道題考察了二叉...

洛谷 新二叉樹(P1305,二叉樹)

輸入一串二叉樹,輸出其前序遍歷。輸入格式 第一行為二叉樹的節點數 n。1 n 26 後面 n 行,每乙個字母為節點,後兩個字母分別為其左右兒子。空節點用 表示 輸出格式 二叉樹的前序遍歷。輸入輸出樣例輸入6 abcbdi cj d i j 輸出abdicj include using namespa...

二叉樹之 二叉樹深度

二叉樹深度 獲取最大深度 public static int getmaxdepth treenode root 二叉樹寬度 使用佇列,層次遍歷二叉樹。在上一層遍歷完成後,下一層的所有節點已經放到佇列中,此時佇列中的元素個數就是下一層的寬度。以此類推,依次遍歷下一層即可求出二叉樹的最大寬度 獲取最大...