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

java樹的遍歷深度遍歷和

洪振霞1年前7瀏覽0評論

Java樹的遍歷方式有深度優先遍歷和廣度優先遍歷兩種。

深度優先遍歷是先遍歷該節點的子節點,再遍歷該節點的兄弟節點,以此類推。這種遍歷方式通常用遞歸實現,代碼如下:

public void dfs(TreeNode node) {
if (node == null) {
return;
}
System.out.print(node.val + " ");
dfs(node.left);
dfs(node.right);
}

上述代碼中,先判斷節點是否為空,然后輸出該節點的值,接著遞歸遍歷該節點的左子樹和右子樹。

廣度優先遍歷是先遍歷該節點的所有兄弟節點,再遍歷兄弟節點的子節點,以此類推。一般使用隊列實現,代碼如下:

public void bfs(TreeNode root) {
Queuequeue = new LinkedList<>();
if (root == null) {
return;
}
queue.offer(root);
while (!queue.isEmpty()) {
TreeNode node = queue.poll();
System.out.print(node.val + " ");
if (node.left != null) {
queue.offer(node.left);
}
if (node.right != null) {
queue.offer(node.right);
}
}
}

上面的代碼中,先把根節點加入到隊列中,然后不斷從隊列中取出節點,輸出該節點的值,并把該節點的左子樹和右子樹加入到隊列中。這樣就可以實現廣度優先遍歷。

下一篇php link()