賦值二叉樹
二叉樹形式如下
樹形結構
public class TreeNode {
public int value;
public TreeNode left;
public TreeNode right;
public TreeNode(int value) {
this.value = value;
}
}
賦值
public static void main(String[] args) {
//給二叉樹賦值
TreeNode[] node = new TreeNode[7];
for (int i = 0; i < 7; i++) {
node[i] = new TreeNode(i);
}
for (int i = 0; i < 7; i++) {
if (i * 2 + 1 < 7)
node[i].left = node[i * 2 + 1];
if (i * 2 + 2 < 7)
node[i].right = node[i * 2 + 2];
}
preOrderRe(node[0]);
midOrder(node[0]);
postOrderRe(node[0]);
}
前序遍歷
根 ->左 ->右
private static void preOrderRe(TreeNode treeNode) {
System.out.print(treeNode.value +" ");
TreeNode left = treeNode.left;
if (left != null)
preOrderRe(left);
TreeNode right = treeNode.right;
if (right != null)
preOrderRe(right);
}
中序遍歷
左 ->根 ->右
private static void midOrder(TreeNode treeNode) {
if (treeNode == null) {
return;
} else {
midOrder(treeNode.left);
System.out.print(treeNode.value +" ");
midOrder(treeNode.right);
}
}
後續遍歷
左 ->右 ->根
private static void postOrderRe(TreeNode treeNode) {
if (treeNode == null) {
return;
} else {
midOrder(treeNode.left);
midOrder(treeNode.right);
System.out.print(treeNode.value +" ");
}
}
程序執行結果:
前序遍歷:0 1 3 4 2 5 6
中序遍歷:3 1 4 0 5 2 6
後序遍歷:3 1 4 5 2 6 0
參考:https://blog.csdn.net/coder__666/article/details/80349039