2017-02-11 3 views
-2

Похоже, что мой линейный связанный список не подключался для каждой рекурсии. Нужно объяснять, почему мой код не работает.Что случилось с моей рекурсией? Попытка добавить два узла в каждом обходе

/** 
* Definition for singly-linked list. 
* public class ListNode { 
*  int val; 
*  ListNode next; 
*  ListNode(int x) { val = x; } 
* } 
*/ 


public class Solution { 
    public ListNode addTwoNumbers(ListNode l1, ListNode l2) { 
     if(l1 == null) 
      return null; 
     int val = l1.val + l2.val; 
     ListNode newNode = new ListNode(val); 
     System.out.println(newNode.val); 
     return newNode.next = addTwoNumbers(l1.next, l2.next); 
    } 
} 

Ваш вклад

[2,4,3] [5,6,4]

Ваш стандартный вывод

Ваш ответ

[]

Ожидаемый ответ

[7,10,7]

+2

При всем уважении, вам не нужно нам для этого упражнения. Запустите свой код под отладчиком и убедитесь сами. –

ответ

0

Я думаю, что вы не вернулись newNode.next. Вы должны вызвать метод рекурсии с помощью newNode.next, но вы должны вернуть newNode. Пс. Не забудьте добавить if (l2==null) return null;

+0

Я вернул newNode. –

+0

@MikeNguyen, если вы вернете newNode, кажется, что у вас нет проблем – Antonio1996

0

Смените

return newNode.next = addTwoNumbers(l1.next, l2.next); 

Для

newNode.next = addTwoNumbers(l1.next, l2.next); 
return newNode 
Смежные вопросы