二叉树:用java基本代码可以表示为(掌握遍历算法 前序,中序,后序 熟练使用递归)
public
class TreeNode {
// 左节点
private TreeNode lefTreeNode;
// 右节点
private TreeNode rightNode;
// 当前结点的值
private int value;
TreeNode(int value){
this.value = value;
}
public TreeNode getLefTreeNode() {
return lefTreeNode;
}
public void setLefTreeNode(TreeNode lefTreeNode) {
this.lefTreeNode = lefTreeNode;
}
public TreeNode getRightNode() {
return rightNode;
}
public void setRightNode(TreeNode rightNode) {
this.rightNode = rightNode;
}
public int getValue() {
return value;
}
public void setValue(int value) {
this.value = value;
}
}
二叉查找树
为了方便查找:实现二叉查找树,定义:当前根节点的左边全部比根节点小,当前根节点的右边全部比根节点大。
计算树的深度,只需求出左节点的树深度 和右节点的树深度 求其最大值
public int getHeight(TreeNode treeNode) {
if(treeNode == null) {
return 0;
} else {
int left = getHeight(treeNode.getLefTreeNode());
int right = getHeight(treeNode.getRightNode());
int max = left;
if(max < right) {
max = right;
}
return max+1;//表示加上当前结点,深度为1
}
}
二叉查找树的性质可以得出,从根节点一直往左走,直至无左路可走,即得最小元素;从根节点一直往右走,直至无右路可走,即得最大元素。对于二叉树查找出最大值:找出树左边最大值,找出树右边最大值,比较大小即可获取。
public int getMaxValue(TreeNode treeNode) {
if (treeNode == null) {
return 0;
} else {
int leftValue = getMaxValue(treeNode.getLefTreeNode());
int rightValue= getMaxValue(treeNode.getRightNode());
int max = treeNode.ge