java 反轉單連結串列,偶爾會遇到的面試題
java 反轉單連結串列,偶爾會遇到的面試題。存手機裡,再去面試,萬一碰上就用到了。
// 單連結串列類 --- 新增元素,反轉單連結串列,列印所有元素
public class LinkedList{
// 頭結點
public Element header = null;
//
public LinkedList() { }
/**
* 新增元素
*/
void insertList(Object obj){
Element ele = new Element();
ele.value = obj;
if(header == null){ // 第一次插入元素
header = ele;
}else{ // 不是第一次插入元素
Element temp = header;
while(temp.next != null){ // 獲得最後一個元素
temp = temp.next;
}
temp.next = ele;
}
}
/**
* 列印連結串列
*/
void print(){
StringBuffer sb = new StringBuffer();
sb.append("列印連結串列:");
Element temp = header;
while(temp != null){
sb.append(temp.value);
sb.append(" ");
temp = temp.next;
}
System.out.println(sb);
}
// 反轉單連結串列
public void reverseList(){
Element now = header; // 定義 now 指向 header
Element prev = null; // 定義前一個結點
while(now != null){
Element next = now.next; // 定義 next 指向 now 的下一個結點
now.next = prev; // 修改 now 指向 prev
prev = now; // 將 now 結點複製給 prev
now = next; // 將 now 的下一個結點 next 複製給 now
}
header = prev;
}
// main
public static void main(String[] a){
LinkedList lList = new LinkedList();
lList.insertList(1);
lList.insertList(2);
lList.insertList(3);
lList.insertList(4);
lList.insertList(5);
lList.print();
// 反轉單連結串列
lList.reverseList();
lList.print();
}
}
// 節點類
class Element{
public Object value = null;
public Element next = null;
}
相關文章
- 連結串列面試題(二)---連結串列逆序(連結串列反轉)面試題
- 【LeetCode-連結串列】面試題-反轉連結串列LeetCode面試題
- 如何在Java中反轉單連結串列?Java
- 面試必備的「反轉連結串列」面試
- #反轉連結串列_C++版 #反轉連結串列_Java版 @FDDLCC++Java
- Java單連結串列反轉圖文詳解Java
- java實現連結串列反轉Java
- java不用api實現單連結串列反轉(二)JavaAPI
- 反轉連結串列
- 劍指offer面試16 反轉連結串列面試
- 演算法題:反轉一個單連結串列&判斷連結串列是否有環演算法
- 反轉連結串列(C++簡單區)C++
- [每日一題] 第二題:反轉連結串列每日一題
- 搞懂單連結串列常見面試題面試題
- 連結串列面試題(十一)---求帶環單連結串列 環的入口點面試題
- 反轉連結串列、合併連結串列、樹的子結構
- 連結串列面試題(十)---求帶環單連結串列的環的長度面試題
- 連結串列專題——面試中常見的連結串列問題面試
- 面試中必知必會的那些題——第一題 單連結串列倒置面試
- 【C++】“反轉連結串列”相關的題目C++
- 反轉連結串列系列題練習遞迴遞迴
- JavaScript從反轉陣列到連結串列反轉JavaScript陣列
- 一個node連結串列翻轉的面試題面試題
- 資料結構和演算法——Go實現單連結串列並且反轉單連結串列資料結構演算法Go
- 【演算法題】反轉連結串列的兩種方法演算法
- 演算法入門題:如何反轉一個單向連結串列?演算法
- 連結串列面試題(六)---刪除單連結串列倒數第k個結點面試題
- leetcode 反轉連結串列LeetCode
- TypeScript 實現連結串列反轉TypeScript
- 1025 反轉連結串列
- 連結串列面試題(一)---刪除一個無頭單連結串列的非尾結點面試題
- 【圖解連結串列類面試題】移除連結串列元素圖解面試題
- 【圖解連結串列類面試題】環形連結串列圖解面試題
- Java 單連結串列逆序Java
- 圖解帶頭節點的單連結串列的反轉操作圖解
- 資料結構之連結串列:206. 反轉連結串列資料結構
- leetcode 92 反轉連結串列ⅡLeetCode
- 連結串列面試題(七)---合併兩個有序連結串列面試題