欧美一区二区三区,国内熟女精品熟女A片视频小说,日本av网,小鲜肉男男GAY做受XXX网站

java樹的深度和廣度

林雅南1年前6瀏覽0評論

Java樹的深度和廣度

Java中的樹結構是一種常用的數據結構,它具有分層的結構特點,用于表示層次關系。樹的深度和廣度都是樹結構中兩個重要的概念,它們分別表示樹的層數和每層節點數。深度和廣度的計算方法也是不同的。

樹的深度

/**
 * 計算二叉樹的深度
 *
 * @param root 樹的根節點
 * @return 樹的深度
 */
public static int getDepth(TreeNode root) {
if (root == null) {
return 0;
}
int leftDepth = getDepth(root.left);
int rightDepth = getDepth(root.right);
return Math.max(leftDepth, rightDepth) + 1;
}

上面的代碼演示了如何計算二叉樹深度,其中TreeNode為二叉樹的節點類,left和right分別為左右子節點,通過遞歸查詢左右子節點的深度并取較大值,再加上根節點的深度,最終得到樹的深度。

樹的廣度

/**
 * 計算二叉樹每層的節點個數
 *
 * @param root 樹的根節點
 * @return 樹每層的節點數
 */
public static ListgetBreadth(TreeNode root) {
Listres = new ArrayList<>();
if (root == null) {
return res;
}
Queuequeue = new LinkedList<>();
queue.offer(root);
while (!queue.isEmpty()) {
int size = queue.size();
res.add(size);
for (int i = 0; i< size; i++) {
TreeNode node = queue.poll();
if (node.left != null) {
queue.offer(node.left);
}
if (node.right != null) {
queue.offer(node.right);
}
}
}
return res;
}

該代碼演示了如何計算二叉樹每層節點數,其中TreeNode為二叉樹的節點類,left和right分別為左右子節點,通過一個隊列逐層遍歷樹,并在遍歷每一層時記錄該層節點數,最終得到樹的廣度。

綜上所述,樹的深度和廣度是樹結構中的兩個重要指標,計算方法也各不相同,理解這兩個概念對于深入學習和應用樹結構都非常重要。