Advertisement
gustkust

Untitled

Apr 1st, 2020
124
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.26 KB | None | 0 0
  1. def to_list(root):
  2. # funkcja jest rekurencyjna i zatrzymuje sie dla danej gałęzi gdy root jest None
  3. if root is not None:
  4. # te odpowiednie funkcje się nie wykonają gdy root.left albo .right bedzie None
  5. to_list(root.left)
  6. to_list(root.right)
  7. # patrzymy na lewa galez od roota
  8. if root.left is not None:
  9. # i dajemy to jako zmienna tmp
  10. tmp = root.left
  11. # szukamy elementu najbardziej po prawej od tmp (najwiekszego od tmp)
  12. while tmp.right is not None:
  13. tmp = tmp.right
  14. # i podstawiamy za niego cala galez glownego roota
  15. tmp.right = root.right
  16. # a za cala prawa galez glownego roota dajemy ta lewa galez ktora wlasnie zmienilismy (dodalismy na jej koncu prawa galez roota)
  17. root.right = root.left
  18. # za lewa galez roota dajemy None
  19. root.left = None
  20. # tym sposobem glowny root nie ma nic po lewej, a po prawej ma to co bylo po lewej + to co bylo po prawej na koncu
  21. # te wczesniejsze funkcje rekurencyjne sluza do tego, by w taki sam sposob poprzerzucac wszystko w mniejszych galeziach, a w tym glownym wywolaniu funkcji tak naprawde laczymy tylko dwie juz "wyplaszczone" galezie
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement