鍊錶是一種物理儲存單元上非連續、非順序的儲存結構,資料元素的邏輯順序是通過鍊錶中的指標鏈結次序實現的。鍊錶由一系列節點(鍊錶中的每乙個元素稱為節點)組成,節點可以在執行時動態生成。每個節點包含兩個部分:乙個是儲存資料元素的資料域,另乙個是儲存下乙個節點位址的指標域。相對於線性表順序結構,操作複雜。由於不必按順序儲存,鍊錶在插入的時候可以達到o(1)的複雜度,比另一種線性表順序表快得多,但查詢乙個節點或者訪問特定編號的節點則需要o(n)的時間,而線性表和順序表相應的時間複雜度分別是o(logn)和o(1)。
鍊錶的優勢
鍊錶的缺點
定義乙個節點類
public class listnode
//將陣列的值賦給鍊錶
public listnode getlist(int sums)
return dummyhead.next;
}//將鍊錶的值賦給list並列印
public void showlist(listnode listnode)
for (int i = 0; i < list.size(); i++)
}/**
* leetcode第二題
** 給出兩個非空的鍊錶用來表示兩個非負的整數,
* 其中,它們各自的位數是按照逆序的方式儲存的,
* 並且它們的每乙個節點只能儲存一位陣列。
* @param l1
* @param l2
* @return
*/public listnode addtwonumbers(listnode l1, listnode l2)
if (carry > 0)
return dummyhead.next;
}}
測試方法
public class main ;
int b = ;
listnode curr=new listnode(0);
listnode l1=curr.getlist(a);
// curr.showlist(l1);
listnode l2=curr.getlist(b);
// curr.showlist(l2);
listnode l3=curr.addtwonumbers(l1,l2);
curr.showlist(l3);
}}
輸入[2,4,3],[5,6,4]
輸出[7,0,8]
Java單鏈表的實現
package com.handy.ds author handy 2012 3 15 class node public node int data,node next public class singlelinkedlist param head the head to set public ...
Java單鏈表的反轉
前段時間有同事面試,給面試的人都提乙個演算法問題那就是單鏈表的反轉,好多小夥伴都不會,或者表示一聽演算法就懵逼了,自己寫了乙個。就是5 4 6 8 9 1 2 7,反轉輸出7 2 1 9 8 6 4 5,我自己寫的反轉有兩種方式。一種是遞迴,一種是遍歷,也是很普通的兩種方式。一 遞迴的方式 先看圖 ...
java單鏈表實現
class node 非空節點 public node object obj description 注 在這裡鍊錶預設都是帶有頭節點 資料域為空 version 1.0 author meify 2013 7 29 下午3 36 19 public class linklist 往單鏈表頭部插入節...