Java LinkedList

鏈表(Linked list)是一種常見的基礎(chǔ)數(shù)據(jù)結(jié)構(gòu),是一種線性表,但是并不會按線性的順序存儲數(shù)據(jù),而是在每一個節(jié)點里存到下一個節(jié)點的地址双戳。

鏈表可分為單向鏈表和雙向鏈表。
一個單向鏈表包含兩個值: 當前節(jié)點的值和一個指向下一個節(jié)點的鏈接糜芳。


image

一個雙向鏈表有三個整數(shù)值: 數(shù)值飒货、向后的節(jié)點鏈接、向前的節(jié)點鏈接峭竣。


image

Java LinkedList(鏈表) 類似于 ArrayList塘辅,是一種常用的數(shù)據(jù)容器。
與 ArrayList 相比皆撩,LinkedList 的增加和刪除對操作效率更高扣墩,而查找和修改的操作效率較低。

以下情況使用 ArrayList :

頻繁訪問列表中的某一個元素扛吞。
只需要在列表末尾進行添加和刪除元素操作呻惕。

以下情況使用 LinkedList :

你需要通過循環(huán)迭代來訪問列表中的某些元素。
需要頻繁的在列表開頭滥比、中間亚脆、末尾等位置進行添加和刪除元素操作。
更多請查看 LinkedList--api

模擬實現(xiàn):

1守呜、單鏈表:

//定義節(jié)點
    static class Node<T> {
        public T value;//數(shù)據(jù)域
        public Node next;//指針域

        public Node(T value, Node next) {
            this.value = value;
            this.next = next;
        }
    }
    //打印單鏈表
    public static void soutNode(Node node) {
        System.out.println("node.value: " + node.value);
        if (node.next != null) {
            soutNode(node.next);
        }
    }
//打印
//模擬實現(xiàn)單鏈表
        Node node3 = new Node("node_3", null);
        Node node2 = new Node("node_2", node3);
        Node node1 = new Node("node-1", node2);
        Node head = new Node("head", node1);
        soutNode(head);

打印結(jié)果:

node.value: head
node.value: node-1
node.value: node_2
node.value: node_3

1.1型酥、插入和刪除節(jié)點

//指定位置插入節(jié)點
Node node2_3 = new Node("newNode2_3",node3);
node2.next = node2_3;
//soutNode(newHead);
//刪除某個指定節(jié)點,比如刪除node2
node1.next = node2_3;
soutNode(newHead);

1.2、單項鏈表的反轉(zhuǎn)

原順序是:head查乒、node-1弥喉、node-2、node-3

算法:
//鏈表反轉(zhuǎn)-->head
System.out.println("開始反轉(zhuǎn)>>>>>>>>>");
Node preNode = head;
Node currentNode = head;
Node tempNode;

while (currentNode != null){
     tempNode = currentNode.next;//臨存

     currentNode.next = preNode;//指針下移
     preNode = currentNode;

      currentNode = tempNode;//啟用臨時數(shù)據(jù)
}

head.next = null;//原頭結(jié)點next置空

反轉(zhuǎn)后為:node-3玛迄、node-2由境、node-1、head
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末蓖议,一起剝皮案震驚了整個濱河市虏杰,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌勒虾,老刑警劉巖纺阔,帶你破解...
    沈念sama閱讀 221,548評論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異修然,居然都是意外死亡笛钝,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,497評論 3 399
  • 文/潘曉璐 我一進店門愕宋,熙熙樓的掌柜王于貴愁眉苦臉地迎上來玻靡,“玉大人,你說我怎么就攤上這事中贝《谀恚” “怎么了?”我有些...
    開封第一講書人閱讀 167,990評論 0 360
  • 文/不壞的土叔 我叫張陵邻寿,是天一觀的道長蝎土。 經(jīng)常有香客問我,道長老厌,這世上最難降的妖魔是什么瘟则? 我笑而不...
    開封第一講書人閱讀 59,618評論 1 296
  • 正文 為了忘掉前任,我火速辦了婚禮枝秤,結(jié)果婚禮上醋拧,老公的妹妹穿的比我還像新娘。我一直安慰自己淀弹,他們只是感情好丹壕,可當我...
    茶點故事閱讀 68,618評論 6 397
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著薇溃,像睡著了一般菌赖。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上沐序,一...
    開封第一講書人閱讀 52,246評論 1 308
  • 那天琉用,我揣著相機與錄音堕绩,去河邊找鬼。 笑死邑时,一個胖子當著我的面吹牛奴紧,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播晶丘,決...
    沈念sama閱讀 40,819評論 3 421
  • 文/蒼蘭香墨 我猛地睜開眼黍氮,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了浅浮?” 一聲冷哼從身側(cè)響起沫浆,我...
    開封第一講書人閱讀 39,725評論 0 276
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎滚秩,沒想到半個月后专执,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 46,268評論 1 320
  • 正文 獨居荒郊野嶺守林人離奇死亡郁油,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 38,356評論 3 340
  • 正文 我和宋清朗相戀三年他炊,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片已艰。...
    茶點故事閱讀 40,488評論 1 352
  • 序言:一個原本活蹦亂跳的男人離奇死亡痊末,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出哩掺,到底是詐尸還是另有隱情凿叠,我是刑警寧澤,帶...
    沈念sama閱讀 36,181評論 5 350
  • 正文 年R本政府宣布嚼吞,位于F島的核電站盒件,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏舱禽。R本人自食惡果不足惜炒刁,卻給世界環(huán)境...
    茶點故事閱讀 41,862評論 3 333
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望誊稚。 院中可真熱鬧翔始,春花似錦、人聲如沸里伯。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,331評論 0 24
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽疾瓮。三九已至脖镀,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間狼电,已是汗流浹背蜒灰。 一陣腳步聲響...
    開封第一講書人閱讀 33,445評論 1 272
  • 我被黑心中介騙來泰國打工弦蹂, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人强窖。 一個月前我還...
    沈念sama閱讀 48,897評論 3 376
  • 正文 我出身青樓盈匾,卻偏偏與公主長得像,于是被迫代替她去往敵國和親毕骡。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 45,500評論 2 359

推薦閱讀更多精彩內(nèi)容