Moderate BST转双向链表 @CareerCup(二)
("inconsistent node: " + node);
}
System.out.print(node.data + "->");
}
System.out.println();
}
public static BiNode createTree() {
BiNode[] nodes = new BiNode[7];
for (int i = 0; i < nodes.length; i++) {
nodes[i] = new BiNode(i);
}
nodes[4].node1 = nodes[2];
nodes[4].node2 = nodes[5];
nodes[2].node1 = nodes[1];
nodes[2].node2 = nodes[3];
nodes[5].node2 = nodes[6];
nodes[1].node1 = nodes[0];
return nodes[4];
}
public static void printAsTree(BiNode root, String spaces) {
if (root == null) {
System.out.println(spaces + "- null");
return;
}
System.out.println(spaces + "- " + root.data);
printAsTree(root.node1, spaces + " ");
printAsTree(root.node2, spaces + " ");
}
public static void main(String[] args) {
BiNode root = createTree();
printAsTree(root, "");
// NodePair n = convert(root);
// printLinkedListTree(n.head);
// printLinkedListTree(convert2(root));
printLinkedListTree(convert3(root));
}
static class BiNode {
public BiNode node1; // 左或前指针
public BiNode node2; // 右或后指针
public int data;
public BiNode(int d) {
data = d;
}
}
}