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);
    }

 

 
 
posted @ 2021-07-18 09:19  苗妙苗  阅读(33)  评论(0编辑  收藏  举报