我有一个名为 LinkStrand 的类,它的功能与链接列表非常相似。它有, toString()
, size()
, append()
, next()
and value()
,但不是previous()
方法。我正在尝试编写反转节点顺序的代码,以及每个节点内的字符串。为了使自己在必须编写的其他一些方法中更轻松,我摆脱了构建节点时的下一个节点要求。下面是 Node 类的样子:
private class Node {
public Node myNext;
public String myData;
Node(String value) {
myData = value;
//myNext = next;
}
}
我的 .reverse() 方法当前单独反转节点内的所有字符串,但不反转节点本身的顺序。复制如下:
public IDnaStrand reverse() {
if (this == null)
return this;
Node prevStrand = null;
Node thisStrand = myHead;
String revString;
LinkStrand val = new LinkStrand();
while (thisStrand != null){
Node hold = thisStrand.myNext;
if (revSave.containsKey(thisStrand.myData)){
revString = revSave.get(thisStrand.myData);
val.append(revString);
//System.out.println("Val is: " + val);
}
else{
revString = reverseStr(thisStrand.myData);
val.append(revString);
//System.out.println("Val is: " + val);
revSave.put(thisStrand.myData, revString);
}
thisStrand.myData = revString;
thisStrand.myNext = prevStrand;
prevStrand = thisStrand;
thisStrand = hold;
}
return val;
}
我一直在尝试想出某种方法来反转节点顺序,但我正在画一个空白。有谁知道我该怎么做?
谢谢!