面試題55 二叉樹的深度

2021-09-22 21:10:39 字數 954 閱讀 4781

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

遞迴版本:

class solution 

};

非遞迴(層次遍歷)

// 遞迴遍歷,僅僅一行

class solution

};//迭代版本

class solution

}return depth;

}};

題目二:輸入一棵二叉樹,判斷該二叉樹是否是平衡二叉樹。

class solution 

// 平衡二叉樹

// 解法一: 判斷每個結點的左右子樹的深度之差不超過一

bool isbalanced_solution(treenode* proot)

// 繼續判斷左右子樹

return isbalanced_solution(proot->left) && isbalanced_solution(proot->right);

}// 平衡二叉樹

// 解法二: 後序遍歷二叉樹, 同時記錄每個結點的深度, 並判斷每個結點是否平衡

// 此方法中每個結點只被訪問一次

bool isbalanced_solution(treenode* proot)

// 後序遍歷

bool isbalanced_solution(treenode* proot, int &pdepth)

int left, right; // 記錄左右子樹的深度

if(isbalanced_solution(proot->left, left) && isbalanced_solution(proot->right, right))

}return false;

}};

面試題55 二叉樹的深度

輸入一棵二叉樹的根結點,求該樹的深度。從根結點到葉結點依次經過的結點 含根 葉結點 形成樹的一條路徑,最長路徑的長度為樹的深度。例如下圖中的二叉樹的深度為4,因為它從根結點到葉結點最長的路徑包含4個結點 從根結點1開始,經過結點2和結點5,最終到達葉結點7 思路 如果一棵樹只有乙個結點,它的深度為1...

面試題55 二叉樹的深度

二叉樹的深度 輸入一棵二叉樹的根節點,求該樹的深度。從根結點到葉結點依次經過的結點 含根 葉結點 形成樹的一條路徑,最長路徑的長度為樹的深度。如果一棵樹只有乙個結點,那麼它的深度是1。樹的深度是max 根節點左孩子深度,根節點右孩子深度 1。package com.wsy class tree pu...

面試題55 I 二叉樹的深度

題目 輸入一棵二叉樹的根節點,求該樹的深度。從根節點到葉節點依次經過的節點 含根 葉節點 形成樹的一條路徑,最長路徑的長度為樹的深度 方法 遞迴左右子樹 遞迴遍歷,取左右子樹的最大深度,加當前根結點的 1 個深度,就是結果 class solution intdfs treenode root in...