LinkList簡單認識
阿新 • • 發佈:2018-10-31
1.從原始碼角度簡單認識
分析:可以看出LinkList定義兩個指標,分別為頭指標和尾指標。但是在原始碼裡面頭指標和尾指標分別被transient修飾。為什麼需要被transient修飾,請看在java陣列的講解。
這裡主要定義Node型別
新增尾部節點
分析:
1.首先儲存原來的尾部節點
2.產生新節點,並且讓新節點指向尾節點
3.移動尾部節點
4.進行判斷,儲存的為節點是否為null,如果是的話,頭即是尾,尾即是頭,不然就是讓儲存的尾節點指向新節點
新增頭部節點
新增在某個節點之前
1. 把要插入在某個節點的資訊取出來
2. 產生要插入的節點
3. 對插入節點之前的節點進行判斷,如果為空的話,就說明這個節點為頭節點,否則,就讓插入節點之前的節點指向要插入節點,在讓要插入節點之後的節點指向要插入節點
拆分頭節點
1 首先對要拆分頭結點的下一個節點資訊進行儲存
2 把要拆分節點的e,next賦值為null
3 讓頭結點指向儲存的節點
4. 判斷儲存的節點是否為null,如果是null說明尾節點是null,否則讓next的頭指標為null
拆分尾節點
拆分節點
1. 首先取出這個節點的頭指標和尾指標
2. 對頭指標進行判斷,如果頭指標尾空的話,說明要的拆分的是頭指標,否則的話,就讓拆分前面的節點指向後面的節點
3. 對尾指標進行判斷,如果尾指標尾空的話,說明要的拆分的是尾指標,否則的話,就讓拆分後面的節點指向前面的節點