ПредишенСледващото

Този алгоритъм може да се прилага рекурсивно и не-рекурсивни начин. Рекурсивни решения са склонни да бъдат по-разбираеми, но по-малко от оптималното. Например, рекурсивно изпълнение на този проблем е почти два пъти по-къси nonrecursive но отнема O (N) пространство, където п - брой на елементите в списъка свързани.

Когато решаването на този проблем, не забравяйте, че можете да изберете стойността на к, така че предаването на К = 1 получаваме последния елемент, 2 - предпоследната и т.н. Или изберете к, така че к = 0 отговаря на последния елемент.

Решение 1: свързан списък с известен размер

Ако е известен размерът на списъка свързани, к-ти елемент от края на лесно да се изчисли (L - к). Вие трябва да преминете през списъка и да намерят този елемент.

Решение 2: The рекурсивно решение

Такъв алгоритъм е рекурсивно минава свързан списък. При достигане на последния елемент на алгоритъма започва обратното броене, и брояча се нулира на 0. Всяка стъпка увеличи стойноста на тезгяха от 1. Когато броячът достигне к, желания елемент е намерен.

Изпълнението на този алгоритъм е кратък и лесно - само да се върне обратно целочислена стойност в стека. За съжаление, връщане не трябва да се върне стойността на възела. Е, как да получите от тази трудност?

Подход A: не се върне елемент

Вие не можете да върнете стоката, това е достатъчно, за да се оттегли, веднага след като е намерен. В изявление за връщане в обратна стойност брой.

Решението е правилно, но можете да отидете на друг начин.

Подход Б: използват C ++

Вторият метод - използването на C ++ и трансфер на стойност чрез препратка. Този подход позволява не само да се върне стойността на възела, но също така и за актуализиране на борсата, като мине указател към нея.

Решение 3: Повтарящ разтвор

Повтарящ решение е по-сложно, но и по-оптимално. могат да се използват две насоки - P1 и P2. Първоначално двете указатели сочат към горната част на списъка. След това преминете p2 к напред възли. Сега ние започваме да се движи по същото време и двете насоки. Когато p2 достигне края на списъка, p1 ще сочат към желаната опция за нас.

Подкрепете проекта - споделете линка, благодаря!