二叉樹的深度

2021-10-06 04:03:56 字數 1878 閱讀 6934

繼續樹相關的問題

輸入一棵二叉樹的根節點,求該樹的深度。從根節點到葉節點依沙經過的節點(含根、葉節點)形成樹的一條路徑,最長路徑的長度為極的深度。

用遞迴解決,簡單直觀

// treedepth.h

#pragma once

#include #include "common.h"

#include "constructtree.h"

using namespace std;

#define namespace_treedepth namespace name_treedepth

templateint treedepth(binarytreenode* proot)

return max(treedepth(proot->m_pleft) + 1, treedepth(proot->m_pright) + 1);}//

// 測試開始

namespace_treedepth

templatevoid test(const char* testname, t* preorder, t* inorder, int length, int expectdepth)

else

}// 普通二叉樹

// 1

void test1()

// 普通二叉樹

// 1

// /

// 2

// /

// 3

// /

// 4

void test2()

// 普通二叉樹

// 1

// / \

// 2 3

// / / \

// 4 5 6

// \ /

// 7 8

void test3()

// 完全二叉樹

// 1

// / \

// 2 3

// / \ / \

// 4 5 6 7

void test4()

// 1

// / \

// 2 3

// / \ / \

// 4 5 6 7

// / \ / \ / \ / \

// 8 9 10 11 12 13 14 15

void test5()

; int inorder[length] = ;

test("test3", preorder, inorder, length, 4);

}namespace_treedepthend

// 測試結束

//void treedepth_test()

執行結果:

二叉樹的深度 二叉樹的深度

題目描述輸入一棵二叉樹,求該樹的深度。從根結點到葉結點依次經過的結點 含根 葉結點 形成樹的一條路徑,最長路徑的長度為樹的深度。及測試用例 單步除錯檢視過程 public class solution19 拿到左子樹的最大深度 int leftdep treedepth root.left 拿到右子...

二叉樹的深度 二叉樹的深度 二叉樹最大寬度

題目 輸入一棵二叉樹的根節點,求該樹的深度。從根節點到葉節點依次經過的節點 含根 葉節點 形成樹的一條路徑,最長路徑的長度為樹的深度。例如 給定二叉樹 3,9,20,null,null,15,7 返回它的最大深度 3 根節點加上左右子樹的最大深度就是樹的最大深度。如下 class solution ...

二叉樹之 二叉樹深度

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