Avatar billede frankedrengen Nybegynder
12. september 2014 - 13:15 Der er 1 kommentar og
1 løsning

LinkedList opgave med stretch

Hej eksperten, jeg skal skrive en metode, stretch(int n) i min egen LinkedList classe, som kan stretche indholdet. før kald til metoden er listen[2, 4, 6], og efter et kald med stretch(3) er listen [2,2,2,4,4,4,6,6,6]. Har brug for lidt hjælp til at skrive det sidste tal ud?

    // exercise 10.
    // post: increases a list of integers by a factor of n, by replacing each integer in the list
    // with n copies of that integer
    public void stretch(int n) {
        if (n <= 0) {
            front = null;
        } else {
            ListNode temp = front;
            ListNode current = front.next;
            ListNode newNode = null;
           
            while (current != null) {               
                for (int i = 1; i < n; i++) {
                    newNode = new ListNode(temp.data);
                    temp.next = newNode;
                    newNode.next = current;
                    temp = temp.next;
                }
                temp = current;
                current = current.next;
            }
        }
    }
Avatar billede crazysnap Seniormester
12. september 2014 - 16:04 #1
Hej frankedrengen,

Følgende udskiftning af din while-løkke burde virke:

while (temp != null) {               
      for (int i = 1; i < n; i++) {
          newNode = new ListNode(temp.data);
          temp.next = newNode;
          newNode.next = current;
          temp = temp.next;
      }
      temp = current;
      if(current != null)
          current = current.next;
}

/CS
Avatar billede frankedrengen Nybegynder
12. september 2014 - 21:17 #2
Hej CS,
tak for det, det virker!
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester