二叉树算法java程序
时间: 2023-05-26 15:01:01 浏览: 132
A:
二叉树是一种非常重要的数据结构,针对二叉树的算法也是很多面试题目的考察点之一。下面是一份二叉树算法的Java程序,供参考:
```
public class TreeNode{
int val;
TreeNode left;
TreeNode right;
TreeNode(int x) {val = x;}
}
public class BinaryTree{
private TreeNode root;
public BinaryTree(TreeNode rootNode){
root = rootNode;
}
public void preTraverse(TreeNode root){
if(root!=null){
System.out.println(root.val);
preTraverse(root.left);
preTraverse(root.right);
}
}
public void inTraverse(TreeNode root){
if(root != null){
inTraverse(root.left);
System.out.println(root.val);
inTraverse(root.right);
}
}
public void postTraverse(TreeNode root){
if(root != null){
postTraverse(root.left);
postTraverse(root.right);
System.out.println(root.val);
}
}
public int maxDepth(TreeNode root){
if(root == null){
return 0;
}
return Math.max(maxDepth(root.left), maxDepth(root.right)) +1;
}
public int minDepth(TreeNode root){
if(root == null){
return 0;
}
if(root.left == null){
return minDepth(root.right) + 1;
}
if(root.right == null){
return minDepth(root.left) + 1;
}
return Math.min(minDepth(root.left), minDepth(root.right)) + 1;
}
}
```
这份程序包含了基础的二叉树遍历(先序、中序、后序),以及求二叉树深度和最小深度的方法。可以根据需求来扩展此程序。
阅读全文