java二叉树DFS
时间: 2024-03-30 22:31:58 浏览: 68
在Java中,二叉树的深度优先搜索(DFS)是一种遍历二叉树的方法。DFS有三种常见的方式:前序遍历、中序遍历和后序遍历。
1. 前序遍历(Preorder Traversal):首先访问根节点,然后递归地遍历左子树,最后递归地遍历右子树。
2. 中序遍历(Inorder Traversal):首先递归地遍历左子树,然后访问根节点,最后递归地遍历右子树。
3. 后序遍历(Postorder Traversal):首先递归地遍历左子树,然后递归地遍历右子树,最后访问根节点。
下面是一个示例代码,展示了如何使用递归实现二叉树的DFS:
```java
class TreeNode {
int val;
TreeNode left;
TreeNode right;
TreeNode(int val) {
this.val = val;
}
}
public class BinaryTreeDFS {
public void preorderTraversal(TreeNode root) {
if (root == null) {
return;
}
System.out.print(root.val + " ");
preorderTraversal(root.left);
preorderTraversal(root.right);
}
public void inorderTraversal(TreeNode root) {
if (root == null) {
return;
}
inorderTraversal(root.left);
System.out.print(root.val + " ");
inorderTraversal(root.right);
}
public void postorderTraversal(TreeNode root) {
if (root == null) {
return;
}
postorderTraversal(root.left);
postorderTraversal(root.right);
System.out.print(root.val + " ");
}
public static void main(String[] args) {
TreeNode root = new TreeNode(1);
root.left = new TreeNode(2);
root.right = new TreeNode(3);
root.left.left = new TreeNode(4);
root.left.right = new TreeNode(5);
BinaryTreeDFS binaryTreeDFS = new BinaryTreeDFS();
System.out.println("Preorder Traversal:");
binaryTreeDFS.preorderTraversal(root);
System.out.println("\nInorder Traversal:");
binaryTreeDFS.inorderTraversal(root);
System.out.println("\nPostorder Traversal:");
binaryTreeDFS.postorderTraversal(root);
}
}
```
阅读全文