Создание списка рекурсивно

Рекурсия является своего рода математически закодированной математической индукции .

Специализация: Когда 1:00 создание п == (в коде не обязательно является частным случаем п == 1, может п == 0 или п == NULL), обобщенный процесс иногда влияют на особые обстоятельства. Поэтому при написании кода должно попытаться закончить первый обобщенный логический процесс снова рассмотрит специализацию.

Обобщение: Для п-1 установлена зависимость, для п также установленная (в письменной программе) математик п-1 удовлетворяет соотношение п подтверждение также выполнено.

Для каштана:

Следующие два рекурсивная функция суммирования является правильным, но разные

// обобщенный другой результат в различных специализированных 
Int SUM ( ИНТ n-) { // найти натуральное число и 1 ~ п 
IF (п - == 1. ) Возвращение  1. ; // конкретизированы 
возвращение SUM (N . 1 ) + n-; /// обобщен 
} 
INT SUM1 ( ИНТ n-) { // найти натуральное число и 1 ~ п IF (п - == 1. ) возвращение 1. ; // специализироваться IF (п - == 2 ) возвращение 3. ; возвращение SUM (N - 2 ) + п-N . 1; // обобщение }

 

 java代码如下:
节点类定义:

package interview;

public class Node {
private final int value;
private Node next;

public Node(int value) {
    super();
    this.value = value;
    this.next = null;
}
public Node getNext() {
    return next;
}

public void setNext(Node next) {
    this.next = next;
    
}
public int getValue() {
    return value;
}

public static void printList(Node head){
while(head!=null){
    System.out.print(head.getValue());
    System.out.print(" ");
    head=head.getNext();    
}System.out.println();
}


}

主函数:

package interview;

import java.util.List;
import java.util.Arrays;
public class list {
    /**
     * Creats a Linked List    
     * 
     * @param data the data to creat the list
     * @return head of the linked list.The return linked list 
     * ends with last node with getNext() == null.
     */
    public Node creatList(List<Integer> data){
    
        if(data.isEmpty()){
            return null;
        }
        Node firstNode = new Node(data.get(0));
        Node headofSublist = creatList(data.subList(1,data.size()));
        firstNode.setNext(headofSublist);
        return firstNode;
        
    }
    
    public static void main(String[] args) {
        // TODO Auto-generated method stub
        list creator = new list();
        //Node.printList(new ArrayList<>());
        Node.printList(creator.creatList(Arrays.asList(1)));
        Node.printList(creator.creatList(Arrays.asList(1,2,3,4,5)));
        
        

    }

}

 

рекомендация

отwww.cnblogs.com/cstdio1/p/11250359.html