public class Tree {
/* 根节点 */
Node root;
public void createTree(){
}
/**
* 前序遍历(递归)
*/
public void preorderTraversal(){
preorderTraversal(root);
}
public void preorderTraversal(Node node){
if(node == null){
return;
}
System.out.print(node.value);
preorderTraversal(node.left);
preorderTraversal(node.right);
}
/**
* 中序遍历(递归)
*/
public void inorderTraversal(){
inorderTraversal(root);
}
public void inorderTraversal(Node node){
if(node == null){
return;
}
inorderTraversal(node.left);
System.out.print(node.value);
inorderTraversal(node.right);
}
/**
* 后序遍历(递归)
*/
public void postorderTraversal(){
postorderTraversal(root);
}
public void postorderTraversal(Node node){
if(node == null){
return;
}
postorderTraversal(node.left);
postorderTraversal(node.right);
System.out.print(node.value);
}
/**
* 反转二叉树
* @param root
* @return
*/
public Node invertTree(Node root){
if(root == null){
return null;
}
root.left = invertTree(root.left);
root.right = invertTree(root.right);
Node tmp = root.left;
root.left = root.right;
root.right = tmp;
return root;
}
/**
* 获取二叉树的深度
* @param node
* @return
*/
public int getDepth(Node node){
if(node == null){
return 0;
}
int depth1 = getDepth(node.left);
int depth2 = getDepth(node.right);
return 1 + Math.max(depth1,depth2);
}
public static class Node {
/* 左子节点 */
Node left;
/* 右子节点 */
Node right;
/* 值 */
int value;
public Node(){
}
public Node(Node left,Node right,int value){
this.left = left;
this.right = right;
this.value = value;
}
}
}
网友评论