在不使用遞歸的情況下反轉鏈接列表中的問題。反向鏈接列表
我用這個方法,但是當我嘗試和運行此回了家,我不能打印鏈表的反轉,即使功能看起來好它接着打印方法一樣鏈表它早些時候做過。
有人能幫我理解這裏有什麼問題嗎?
class link {
int data;
public link nextlink;
link(int d1) {
data = d1;
}
}
class List{
link head;
link revhead;
List(){
head = null;
}
boolean isEmpty(link head) {
return head==null;
}
void insert(int d1) {
link templink = new link(d1);
templink.nextlink = head;
head = templink;
}
void printlist(){
link head1 = head;
while(!isEmpty(head1)) {
System.out.print(head1.data + " ");
head1 = head1.nextlink;
}
System.out.println();
}
void reverse() {
link previous=null,temp=null;
while(isEmpty(head)) {
temp = head.nextlink;
head.nextlink = previous;
previous = head;
head = temp;
}
}
}
public class LinkedList {
public static void main(String[] args) {
List list1 = new List();
list1.insert(10);
list1.insert(20);
list1.insert(30);
list1.insert(40);
list1.insert(50);
list1.printlist();
list1.reverse();
list1.printlist();
}
}
這是功課? – eabraham
當你運行它會發生什麼?當你使用調試器完成代碼時,你看到了什麼?它是否在0項長的鏈表上工作? 1件? 2項?如果你使它工作3,它將適用於任何數字...... –
這段代碼在前面的列表中增加了新的條目,所以如果你運行你的打印列表功能,你應該按照與你相反的順序寫出條目添加它們。這不是你想要完成的嗎?也許你需要澄清這個問題。 – Jay