【1】正确序列:
应该为2-1-3-4
【2】代码:
- 树节点:
public class TreeNode {
int no;
String name;
TreeNode left;
TreeNode right;
public TreeNode(int no, String name) {
this.no = no;
this.name = name;
}
@Override
public String toString() {
return "{" + "no=" + no + ", name='" + name + '\'' + '}';
}
}
- 二叉树
public class BinaryTree {
//二叉树根节点
TreeNode head;
public BinaryTree(TreeNode head) {
this.head = head;
}
}
- 中序遍历算法:
/**
* 中序遍历
*/
public class MidOrder {
public static void main(String[] args) {
TreeNode head = new TreeNode(1, "宋江");
TreeNode node2 = new TreeNode(2, "吴用");
TreeNode node3 = new TreeNode(3, "卢俊");
TreeNode node4 = new TreeNode(4, "林冲");
head.left = node2;
head.right = node3;
node3.right = node4;
BinaryTree bt = new BinaryTree(head);
mid(bt);
}
public static void mid(BinaryTree bt) {
if (bt.head == null) {
System.out.println("二叉树为空!");
return;
}
//调用遍历算法
order(bt.head);
}
public static void order(TreeNode node) {
//左递归
if (node.left != null)
order(node.left);
//打印二叉树
System.out.println(node);
//右递归
if (node.right != null)
order(node.right);
}
}