Visualizzazione dei risultati da 1 a 2 su 2

Hybrid View

  1. #1

    Ricorsione lineare per invertire una lista

    Non ho capito un'istruzione ricorsiva :


    import java.util.*;

    public class InvertiLista {



    public static LinkedList<Integer> invertiLista(ListIterator<Integer> li) {


    if(!li.hasNext()) return new LinkedList<Integer>();


    Integer i = li.next();


    LinkedList<Integer> cat = invertiLista(li);


    cat.add(i);


    return cat;

    }


    }

    l'istruzione che dicevo è LinkedList<Integer> cat = invertiLista(li); non ho capito come funziona la ricorsione in questo caso e di conseguenza l'assegnazione cat.add(i), qualcuno saprebbe spiegarmelo?? grazie in anticipo per le risposte.

  2. #2
    Utente di HTML.it L'avatar di kuarl
    Registrato dal
    Oct 2001
    Messaggi
    1,093
    ogni chiamata ricorsiva mette in fondo alla lista il primo elemento, e poi lavora sui rimanenti in modo ricorsivo.

    edit: secondo me è meglio se ti fai un run di prova su carta, tanto per capire come funziona.
    Ultima modifica di kuarl; 12-10-2013 a 12:56

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.