1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25
| class Solution { private static class TreeNodeHolder { private TreeNode pre; }
public TreeNode increasingBST(TreeNode root) { TreeNodeHolder treeNodeHolder = new TreeNodeHolder(); TreeNode dummyHead = new TreeNode(); treeNodeHolder.pre = dummyHead; dfs(treeNodeHolder, root); return dummyHead.right; }
private void dfs(TreeNodeHolder treeNodeHolder, TreeNode node) { if (node == null) { return; }
dfs(treeNodeHolder, node.left); node.left = null; treeNodeHolder.pre.right = node; treeNodeHolder.pre = node; dfs(treeNodeHolder, node.right); } }
|
References
897. Increasing Order Search Tree
剑指 Offer II 052. 展平二叉搜索树