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;
}
}
}
Java中二叉树遍历
最后编辑于 :
©著作权归作者所有,转载或内容合作请联系作者
- 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
- 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
- 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
推荐阅读更多精彩内容
- 最近看了一下大学的数据结构,🈶学到了以前没学到的东西看到了二叉树那一块,感觉二叉树是个很重要的东西,就看了一下底层...
- 建立一颗二叉排序树,并输出它的前序、中序、后序以及层次遍历结果 输入:56 9 1 5 8输出:6 1 5 9 8...