用java写一个二叉树算法
时间: 2023-12-29 08:05:39 浏览: 34
好的,我可以给你一个简单的二叉树遍历的示例代码,如下所示:
```java
class TreeNode {
int val;
TreeNode left;
TreeNode right;
TreeNode(int x) { val = x; }
}
public class BinaryTreeTraversal {
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);
/* 二叉树前序遍历 */
System.out.println("前序遍历:");
preOrder(root);
System.out.println();
/* 二叉树中序遍历 */
System.out.println("中序遍历:");
inOrder(root);
System.out.println();
/* 二叉树后序遍历 */
System.out.println("后序遍历:");
postOrder(root);
System.out.println();
}
/* 二叉树前序遍历 */
public static void preOrder(TreeNode root) {
if (root == null) {
return;
}
System.out.print(root.val + " ");
preOrder(root.left);
preOrder(root.right);
}
/* 二叉树中序遍历 */
public static void inOrder(TreeNode root) {
if (root == null) {
return;
}
inOrder(root.left);
System.out.print(root.val + " ");
inOrder(root.right);
}
/* 二叉树后序遍历 */
public static void postOrder(TreeNode root) {
if (root == null) {
return;
}
postOrder(root.left);
postOrder(root.right);
System.out.print(root.val + " ");
}
}
```
这里我们定义了一个 `TreeNode` 类,用于表示二叉树的每个节点。然后我们构造了一颗二叉树,并分别实现了二叉树的前序遍历、中序遍历和后序遍历。其中,前序遍历先访问根节点,再递归遍历左右子树;中序遍历先递归遍历左子树,再访问根节点,最后递归遍历右子树;后序遍历先递归遍历左右子树,最后访问根节点。
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)