資料結構中 實現單鏈表的反轉

2021-09-24 13:22:53 字數 607 閱讀 7222

1.

//實現單鏈表的反轉

public void reverselist(heronode head)

heronode reservehead = new heronode(0,"","");

heronode next = null;

heronode cur = head.next;

while(cur!=null)

//將head替換reservehead這個頭節點。

head.next =reservehead.next;

}

注意問題:在遍歷和新增鍊錶的時候,判斷是否到鍊錶的末尾。輔助節點和判斷的時候只允許存在乙個next;

2.只實現鍊錶的反向列印,不改變鍊錶的結構。利用棧先進後出的原理。

//實現鍊錶的逆序列印

public void reverseprint(heronode head)

while (stack.size()>0)

}

資料結構 單鏈表實現反轉

如果鍊錶只有乙個或者沒有節點,則無需反轉 原鍊錶的第乙個節點即為反轉後的最後乙個元素,需要將其固定,我們叫它final 按原鍊錶的順序從第二個開始對所有節點node進行遍歷,每次將final的next重新指向node的next,將node的next重新指向head的next,將head的next重新...

資料結構 單鏈表反轉

鍊錶反轉一般有兩種解法 遞迴和迭代。首先給出鍊錶的定義 typedef struct taglnode linklist 假設鍊錶為head 1 2 3 4 5 null。linklist reverse linklist head 一開始我的想法是,先遞迴到最後一層,也就是reverse 5 這層...

資料結構之單鏈表反轉

單鏈表反轉的非遞迴方法 首先是結點的定義 public class node 使用非遞迴方法反轉單鏈表,需要設定兩個node型別的物件pre和nex,pre用來記錄head的前乙個結點,nex用來記錄head的後乙個結點,然後講head結點後移。public node reversecur node...