897. 递增顺序查找树
https://leetcode-cn.com/contest/weekly-contest-100/problems/increasing-order-search-tree/
package com.test;import java.util.ArrayList; import java.util.Collections; import java.util.List;/*** @author stono* @date 2018/9/2* 897. 递增顺序查找树* https://leetcode-cn.com/contest/weekly-contest-100/problems/increasing-order-search-tree/*/ public class Lesson897 {public static void main(String[] args) {TreeNode t1 = new TreeNode(5);TreeNode t2 = new TreeNode(3);TreeNode t3 = new TreeNode(6);TreeNode t4 = new TreeNode(2);TreeNode t5 = new TreeNode(4);TreeNode t6 = new TreeNode(8);TreeNode t7 = new TreeNode(1);TreeNode t8 = new TreeNode(7);TreeNode t9 = new TreeNode(9);t1.left = t2;t1.right = t3;t2.left = t4;t2.right = t5;t3.right = t6;t4.left = t7;t6.left = t8;t6.right = t9;TreeNode.printNode(t1);TreeNode treeNode = increasingBST(t1);System.out.println();TreeNode.printNode(treeNode);}public static TreeNode increasingBST(TreeNode root) {TreeNode left = root;while (true) {if (left.left != null) {left = left.left;}else {break;}}List<Integer> list = new ArrayList<>(8);addAllValue(root, list);// 排序 Collections.sort(list);TreeNode temp = left;for (int i = 0; i < list.size(); i++) {if (list.get(i) - left.val == 0) {continue;}TreeNode t2 = new TreeNode(list.get(i));temp.right = t2;temp = t2;}return left;}private static void addAllValue(TreeNode root, List<Integer> list) {if (root != null) {list.add(root.val);addAllValue(root.left, list);addAllValue(root.right, list);}} }