链表中的递归方法

时间:2017-11-30 09:34:04

标签: java recursion

我目前正在学习递归以及如何在我的代码中实现它。我正在尝试编写一个递归方法替换,它接受一个给定的String并用新项替换每个出现的项目。

任何见解都将受到高度赞赏,并感谢您的时间。

    package lib;

    public class LinkedList {
    private Node head;

    public LinkedList(Node h){
        head = h;
    }
    public Node getHead(){
        return head;
    }
    public void setHead(Node n){
        head = n;
    }
    public void insertAfter(Node newNode, Node prev){
        if (newNode != null){
                newNode.setNext(prev.next());
        }
        prev.setNext(newNode);
    }
    public void insertFront(Node newNode){


        this.setHead(newNode);
    }

    public void deleteAfter(Node prev){
        if (prev.next() == null){

        } else{
        prev.setNext(prev.next().next());
        }
    }

    public void replace (String item, String newItem, Node n) {

    }

    public String toString(){
        String str = "";
        if (head != null){
            Node current = head;
            do {
                str = str + current.getItem();
                current = current.next();
                if (current != head && current != null){
                    str = str + ", ";
                }
            } while(current != head && current != null);
        }
        return str;
    }
}

1 个答案:

答案 0 :(得分:0)

insertFront的一个小错误。

public void insertFront(Node newNode) {
    newNode.setNext(head);
    this.setHead(newNode);
}

递归意味着做一些工作,而其他休息则递归调用该函数。

public void replace (String item, String newItem, Node n) {
    if (n != null) {
        n.data = n.data.replace(item, newItem); // String.replace
        replace(item, newItem, n.next()); // Recursion
    }
}