897. Increasing Order Search Tree 只有右节点的子树
Given the root
of a binary search 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 one right child.
Example 1:
Input: root = [5,3,6,2,4,null,8,1,null,null,null,7,9]
Output: [1,null,2,null,3,null,4,null,5,null,6,null,7,null,8,null,9]
Example 2:
Input: root = [5,1,7] Output: [1,null,5,null,7]
没想到的地方:还要加个prev节点,来表示节点递进之间的关系。
但是主要还是模板没有错!
参考:https://leetcode.com/problems/increasing-order-search-tree/discuss/165870/Java-Simple-InOrder-Traversal-with-Explanation
prev = null, head = null
private void helper(TreeNode root){
helper(root.left);
//按这题的规矩处理一下
if (root != null){
prev.left = null;
prev.right = root;
}
//指定一下head
if (head == null)
head = root;
//模板
root = prev;
helper(root.right);
}