2016-08-09 1 views

Répondre

0
tableau

est une variable locale alors:

  1. vous mettez 1 sur tableau avec bouton
  2. récursive aller à d'autres côtés lorsque vous créez à nouveau array = []
  3. pousser 2
  4. lorsque vous retourner à votre haut de tableau de pile récursive ont toujours seulement 1

peut-être mieux si vous pouvez envoyer un tableau comme argument, et utiliser retourné arr ay pour modifier le local

0

Vous aurez besoin d'une fonction d'assistance pour l'impression en ligne pour js; cette fonction d'aide devrait appeler votre fonction réelle preorder. A l'intérieur de votre fonction preorder, vous devez toujours mettre à jour la chaîne "passée" (j'explique le "" après).

Si le noeud courant est vide, vous devriez retourner la chaîne courante que vous avez en ce moment, sinon elle l'essuierait.

function doPreOrder(root, str) { 
 
    if(!root) { 
 
    return str; 
 
    } 
 
    if(!str) { 
 
    str = ""; 
 
    } 
 
    if(root) { 
 
    str += root.val + ' '; 
 
    str = doPreOrder(root.left, str); 
 
    str = doPreOrder(root.right, str); 
 
    } 
 
    return str; 
 
} 
 

 
function preOrder(root) { 
 
    var x = doPreOrder(root); 
 
    console.log(x); 
 
}

Comme vous pouvez le voir, nous avons d'abord besoin d'utiliser la fonction, et ne passe root. Nous lui transmettons un var indéfini, et ce sera la seule fois où nous entrerons le code str = "", et à partir de là, le str sera mis à jour pour chaque nouvelle donnée. A la fin, vous venez de consigner le journal que var.