目錄
單鏈表反轉
兩個有序的鍊錶合併
刪除鍊錶倒數第 n 個結點
迴圈鍊錶----約瑟夫問題
/**
* 翻轉鍊錶
* * 1->2->3
* * @param head
* @return
*/public static node reverselist(node head)
return newhead == null ? head : newhead;
}
/**
* 合併兩個有序鍊錶
* @param l1
* @param l2
* @return
*/public static node mergesortlist(node l1, node l2) else
}if(l1 != null)
if(l2 != null)
temp = head;
head = head.next;
temp = null;
return head;
}
/**
* 刪除鍊錶的倒數第n個節點
* @param head
* @param n
* @return
*/public node removenthfromend(node head, int n)
if (fastnode == null)
while (fastnode.next != null)
slownode.next = slownode.next.next; //刪除
return head;
}
public static void count(int n)
//鍊錶有資料的部分首尾相連形成乙個環。
cur.next = head.next;
//統計開始的時候,刨去頭結點,然後從第乙個有資料的結點開始報數
node p = head.next;
//迴圈退出的條件是最後只剩乙個結點,也就是這個結點的下乙個結點是它本身
while(p.next!=p)
//最後剩下的乙個結點
system.out.println("(left:"+p.data+")");
}
資料結構與演算法之美 鍊錶
如何優雅的寫出鍊錶 6大學習技巧 一 理解指標或引用的含義1.含義 將某個變數 物件 賦值給指標 引用 實際上就是就是將這個變數 物件 的位址賦值給指標 引用 2.示例 p next q 表示p節點的後繼指標儲存了q節點的記憶體位址。p next p next next 表示p節點的後繼指標儲存了p...
資料結構與演算法之美 鍊錶
1.如何實現lru快取淘汰演算法 答 回答這個問題之前,我們首先了解一下什麼是快取 2.鍊錶的三種形式 單鏈表 雙向鍊錶 迴圈鍊錶 簡介一下單鏈表 頭節點用於記錄基位址,有了它我們就可以遍歷整條鍊錶,而尾節點特殊地方不是指向下乙個節點,而是指向乙個空位址。鍊錶因為不是乙個連續的位址,所以不需要考慮連...
《資料結構與演算法之美》筆記 鍊錶
typedef struct node node 陣列和鍊錶都是線性表。陣列必須是連續空間,而鍊錶無所謂。鍊錶 單鏈表 迴圈鍊錶 雙向鍊錶 陣列 插入 刪除的時間複雜度是o n 隨機訪問的時間複雜度是o 1 鍊錶 插入 刪除的時間複雜度是o 1 隨機訪問的時間複雜端是o n 快取淘汰策略 先進先出策...