Sword se refiere a Offer-59-the Kth nodo del árbol de búsqueda binaria

Descripción del Título

Dado un árbol de búsqueda binario, busque el k-ésimo nodo más pequeño en él. Por ejemplo, en (5,3,7,2,4,6,8), el valor del tercer nodo pequeño es 4 en el orden del valor del nodo.

Análisis de ideas

Las características del árbol de búsqueda binaria son: el nodo izquierdo es más grande que el nodo raíz y el nodo derecho es más pequeño que el nodo raíz.
El resultado del recorrido de orden medio es: izquierda- "medio-" derecha
La combinación de los dos es una secuencia ordenada.

Código

import java.util.ArrayList;
/*
public class TreeNode {
    int val = 0;
    TreeNode left = null;
    TreeNode right = null;

    public TreeNode(int val) {
        this.val = val;

    }

}
*/
public class Solution {
    
    
    ArrayList<TreeNode> list = new ArrayList<>();
    TreeNode KthNode(TreeNode pRoot, int k)
    {
    
    
        KthHelper(pRoot);   
        if(k>=1&&k<=list.size()){
    
    
            return list.get(k-1);
        }
        return null;
    }
    //使用中序遍历:左 中 右
    void KthHelper(TreeNode root){
    
    
        if(root!=null){
    
    
        KthHelper(root.left);
        list.add(root);
        KthHelper(root.right);
        }
    }


}

Supongo que te gusta

Origin blog.csdn.net/H1517043456/article/details/107593418
Recomendado
Clasificación