我目前正在学习递归以及如何在我的代码中实现它。我正在尝试编写一个递归方法替换,它接受一个给定的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;
}
}
答案 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
}
}