2016-05-04 26 views
-1

Ich implementierte die "reverse single linked list, do-in-place" Aufgabe. Ich kam mit dieser Lösung:Umgekehrte einzelne verkettete Liste

/** 
* Definition for singly-linked list. 
* public class ListNode { 
*  int val; 
*  ListNode next; 
*  ListNode(int x) { val = x; } 
* } 
*/ 
public class Solution { 
    public ListNode reverseList(ListNode head) { 
     if (head == null) { 
      return null; 
     } 

     if(head.next==null) return head; 

     ListNode n = head; 
     ListNode r = null; 
     ListNode temp = null; 

     while (n != null) { 
      temp = n; 
      n = n.next; 
      temp.next = r; 
      r = temp; 
     } 

     return r; 
    } 
} 

und es funktioniert:

1 2 3 4 5 
5 4 3 2 1 

aber wenn ich wollte sicher sein, es ist der richtige Ansatz, alle Lösungen Ich habe Online wie die Reverse single linked list so aussehen gesehen I fing an, mich selbst zu befragen ... Was ist los mit meiner Lösung? Die Zeitkomplexität sieht wie O (n) space com aus. O (1) ... liege ich falsch? Danke im Voraus!

+1

Ihre Lösungen sieht gut aus mir. Ich habe einen Check gegen leetcode (https://leetcode.com/) und es bestanden alle Testfälle gut. Nur weil es andere beliebte Lösungen gibt, ist Ihre eigene Lösung falsch. – MSameer

+0

Komplexität muss mindestens in der Größenordnung von n sein, da Sie die Zeigerrichtung für jeden Knoten in der Liste wechseln müssen – mangusta

+0

Ich weiß, dass Zeit compl muss O (n) sein, aber was ist mit Raum? Passt meine Lösung zu der Anforderung von Raum compl O (1)? – grape

Antwort

0

Nicht sicher, was Sie fragen. Ihre Implementierung sieht fast genauso aus wie in der Verknüpfung. Beide Implementierungen sind O(n) für die Zeitkomplexität und O(1) für die Raumkomplexität. Natürlich ist die Liste selbst O(n) für Raumkomplexität.

+0

Vergleichen Sie die Lösungen eng, ich mache es in anderer Reihenfolge, und die Reihenfolge sie könnte schwierig sein – grape

+0

Eigentlich las ich zuerst Ihre, und es ergab Sinn. Aber die Variablennamen sind ... schlecht benannt XD Ich habe den Link jedoch nicht im Detail gelesen. – Jai

+0

Nichtsdestotrotz ist alles, was Sie wissen wollten, die Zeit/Raum-Komplexität, oder? Mir wurde klar, dass ich verwirrt war, als ich den letzten Satz der Frage formulierte. – Jai