У вас есть объявление этого метода
public ListNode sortList(ListNode A) {
и без каких-либо изменений на A
, вы вызываете метод следующим образом:
ListNode left = sortList(A);
Поскольку у вас нет знака конца, выиметь бесконечную рекурсивность.Ввод sortList
должен быть самым левым и самым правым узлом вашего текущего интервала, и, так как у вас есть связанный список, количество элементов в интервале не повредит ни как параметр, чтобы избежать необходимости повторного вычисления,Теперь вместо этого у вас есть один параметр, ListNode
, который называется A
.Этого недостаточно для определения интервала.
Идея сортировки слиянием состоит в том, чтобы многократно делить упорядоченный набор на две половины, разбивать его, ставить похожие, но более простые подзадачи, пока мы не достигнем тривиальности и не решим тривиальные задачи, а затемСочетание таких тривиальных задач становится проще.