package sort;
public class Test54 {
static int order = 0;
public static void main(String[] args) {
int deepth = 3;
BinayTreeNode root = new BinayTreeNode(1, null, null);
makeTree(root, deepth);
getK(root, 5);
}
private static void makeTree(BinayTreeNode node, int deep) {
if (deep > 0) {
node.left = new BinayTreeNode(node.value * 2, null, null);
node.right = new BinayTreeNode(node.value * 2 + 1, null, null);
makeTree(node.left, deep - 1);
makeTree(node.right, deep - 1);
}
}
public static void getK(BinayTreeNode bt, int k) {//使用中序遍历
if (bt == null)
return;
getK(bt.left, k);
order++;
if (order == k) {
System.out.println(bt.value);
return;
} else if (k > order) {
System.out.println("order" + order + " " + bt.value);
}
getK(bt.right, k);
}
}
本文介绍了一个使用Java实现的二叉树数据结构,并通过中序遍历方法查找二叉树中第K个节点的示例。文章详细展示了如何构建二叉树、递归地进行中序遍历以及如何找到特定位置的节点。
637

被折叠的 条评论
为什么被折叠?



