Pregunta 538: Convertir un árbol de búsqueda binario en un árbol acumulativo (recorrido inverso en orden, recorrido de Morris)

1. Título

Inserte la descripción de la imagen aquíInserte la descripción de la imagen aquíInserte la descripción de la imagen aquí

2. Mis pensamientos y problemas iniciales

Ligeramente, mire directamente la solución

3. Método de resolución de problemas 1: recorrido inverso de orden medio

Inserte la descripción de la imagen aquíInserte la descripción de la imagen aquí

class Solution {
    
    
    int sum = 0;

    public TreeNode convertBST(TreeNode root) {
    
    
        if (root != null) {
    
    
            convertBST(root.right);
            sum += root.val;
            root.val = sum;
            convertBST(root.left);
        }
        return root;
    }
}

Inserte la descripción de la imagen aquí

4. Método de resolución de problemas 2: recorrido de Morris

Inserte la descripción de la imagen aquíInserte la descripción de la imagen aquí

class Solution {
    
    
    public TreeNode convertBST(TreeNode root) {
    
    
        int sum = 0;
        TreeNode node = root;

        while (node != null) {
    
    
            if (node.right == null) {
    
    
                sum += node.val;
                node.val = sum;
                node = node.left;
            } else {
    
    
                TreeNode succ = getSuccessor(node);
                if (succ.left == null) {
    
    
                    succ.left = node;
                    node = node.right;
                } else {
    
    
                    succ.left = null;
                    sum += node.val;
                    node.val = sum;
                    node = node.left;
                }
            }
        }

        return root;
    }

    public TreeNode getSuccessor(TreeNode node) {
    
    
        TreeNode succ = node.right;
        while (succ.left != null && succ.left != node) {
    
    
            succ = succ.left;
        }
        return succ;
    }
}

Inserte la descripción de la imagen aquí

Supongo que te gusta

Origin blog.csdn.net/ambitionLlll/article/details/114365656
Recomendado
Clasificación