Разъяснение рекурсии в mergeTwoLists для связанных списковJAVA

Программисты JAVA общаются здесь
Ответить
Anonymous
 Разъяснение рекурсии в mergeTwoLists для связанных списков

Сообщение Anonymous »

Я пытаюсь понять, как работает рекурсия в следующем коде для объединения двух отсортированных связанных списков

Код: Выделить всё

class Solution {
public ListNode mergeTwoLists(ListNode list1, ListNode list2) {
// Base cases
if (list1 == null) {
return list2;
}
if (list2 == null) {
return list1;
}

// Recursive case
if (list1.val < list2.val) {
list1.next = mergeTwoLists(list1.next, list2);
return list1;
} else {
list2.next = mergeTwoLists(list1, list2.next);
return list2;
}
}
}

Я изо всех сил пытаюсь представить, как рекурсивные вызовы соединяют узлы list1 и list2 во время процесса слияния
особенно
  • Как функция слияния обеспечивает правильное соединение результирующего списка? и
  • как возвращаемые значения из более глубоких рекурсивных вызовов используются для построения окончательного объединенного списка?
    Я был бы очень признателен за пошаговое объяснение или любые советы по лучше понять этот процесс
заранее спасибо

Подробнее здесь: https://stackoverflow.com/questions/793 ... nked-lists
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «JAVA»