[PYTHON] Algorithmus Gymnastik 24 Eine verknüpfte Liste umkehren

Reverse a LinkedList Wenn Sie den Anfang einer einzelnen LinkedList angeben, wird die LinkedList umgekehrt. Schreiben Sie eine Funktion, die einen neuen Kopf für die invertierte LinkedList zurückgibt.

Beispiel

Screen Shot 2020-08-07 at 21.27.40.png

Solution Sie können die drei Zeiger "Zurück", "Aktuell" und "Weiter" verwenden, um die LinkedList in einer einzigen Iteration umzukehren.

Implementierung

from __future__ import print_function


class Node:
  def __init__(self, value, next=None):
    self.value = value
    self.next = next

  def print_list(self):
    temp = self
    while temp is not None:
      print(temp.value, end=" ")
      temp = temp.next
    print()


def reverse(head):
  previous, current, next = None, head, None
  while current is not None:
    next = current.next  # temporarily store the next node
    current.next = previous  # reverse the current node
    previous = current  # before we move to the next node, point previous to the current node
    current = next  # move on the next node
  return previous


def main():
  head = Node(2)
  head.next = Node(4)
  head.next.next = Node(6)
  head.next.next.next = Node(8)
  head.next.next.next.next = Node(10)

  print("Nodes of original LinkedList are: ", end='')
  head.print_list()
  result = reverse(head)
  print("Nodes of reversed LinkedList are: ", end='')
  result.print_list()


main()

Recommended Posts

Algorithmus Gymnastik 24 Eine verknüpfte Liste umkehren
Algorithmus Gymnastik 24 Mitte der verknüpften Liste
Algorithmusgymnastik 12
Algorithmusgymnastik 10
Algorithmusgymnastik 3
Algorithmusgymnastik 9
Algorithmusgymnastik 14
verknüpfte Liste
Algorithmusgymnastik 2
Algorithmusgymnastik 7
Algorithmus Gymnastik 15
Algorithmus Gymnastik 16
Algorithmusgymnastik 8
Algorithmus Gymnastik 17
Algorithmus Gymnastik 18
Algorithmusgymnastik 11
Algorithmusübung 5
Algorithmusgymnastik 4
Algorithmusgymnastik 22 Quadrieren eines sortierten Arrays
Listen Sie die umgekehrte Operation auf
Ein * Algorithmus (Python Edition)
Algorithmus Gymnastik 23 Zusammenführungsintervalle
Algorithmus Gymnastik 20 Duplikate entfernen
Algorithmus Gymnastik 21 LinkedList-Zyklus
Algorithmus Gymnastik 24 Zyklische Sortierung
Algorithmus Gymnastik 19 No-Repeat-Teilzeichenfolge
Lassen Sie Code Day78 von vorne beginnen "206. Reverse Linked List"
Ein Kommentar zum Boruta-Algorithmus