Moderate BST转双向链表 @CareerCup(二)

2014-11-24 02:56:55 · 作者: · 浏览: 4
("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; } } }