题目Given a tree, rearrange the tree in in-order so that the leftmost node in the tree is now the root of the tree, and every node has no left child and only 1 right child.Example 1:Input: [5,3,6,2,4,null,8,1,null,null,null,7,9] 5 / \ 3 6 / \ \ 2 4 8 / / \ 1 7 9Output: [1,null,2,null,3,null,4,null,5,null,6,null,7,null,8,null,9] 1 \ 2 \ 3 \ 4 \ 5 \ 6 \ 7 \ 8 \ 9 Note:The number of nodes in the given tree will be between 1 and 100.Each node will have a unique integer value from 0 to 1000.题目地址讲解这道题讲道理本来应该是很简单的,但我犯了一个很愚蠢的错误,就是直接使用原来的树的结点,这样原来的树的结构也被带过来了,导致形成了死递归。其实我只需要原来的结点的值。temp.right = new TreeNode(root.val);而不是:temp.right = root;Java代码/** * Definition for a binary tree node. * public class TreeNode { * int val; * TreeNode left; * TreeNode right; * TreeNode(int x) { val = x; } * } */class Solution { TreeNode result = new TreeNode(0); TreeNode temp = result; public TreeNode increasingBST(TreeNode root) { if(root==null){ return root; } if(root.left!=null){ increasingBST(root.left); } temp.right = new TreeNode(root.val); temp = temp.right; if(root.right!=null){ increasingBST(root.right); } return result.right; }}