在鍊錶類中實現這些功能:
get(index):獲取鍊錶中第 index 個節點的值。如果索引無效,則返回-1。
addathead(val):在鍊錶的第乙個元素之前新增乙個值為 val 的節點。插入後,新節點將成為鍊錶的第乙個節點。
addattail(val):將值為 val 的節點追加到鍊錶的最後乙個元素。
addatindex(index,val):在鍊錶中的第 index 個節點之前新增值為 val 的節點。如果 index 等於鍊錶的長度,則該節點將附加到鍊錶的末尾。如果 index 大於鍊錶長度,則不會插入節點。如果index小於0,則在頭部插入節點。
deleteatindex(index):如果索引 index 有效,則刪除鍊錶中的第 index 個節點。
示例:
mylinkedlist linkedlist =
newmylinkedlist()
;linkedlist.
addathead(1
);linkedlist.
addattail(3
);linkedlist.
addatindex(1
,2);
//鍊錶變為1-> 2-> 3
linkedlist.
get(1)
;//返回2
linkedlist.
deleteatindex(1
);//現在鍊錶是1-> 3
linkedlist.
get(1)
;//返回3
class
mylinkedlist};
//成員變數定義
private
://鍊錶長度
int m_size;
//虛擬頭節點
linkednode *m_dummyhead;
public
://類建構函式
mylinkedlist()
//獲取鍊錶中第 index 個節點的值。如果索引無效,則返回-1。
intget
(int index)
return cur-
>val;
}//在鍊錶的第乙個元素之前新增乙個值為 val 的節點。
void
addathead
(int val)
//在鍊錶的最後乙個元素後新增乙個值為 val 的節點。
void
addattail
(int val)
// 末尾節點的下個節點為新節點
cur-
>next = newnode;
//鍊錶長度加1
m_size++;}
//在鍊錶中的第 index 個節點之前新增值為 val 的節點。如果 index 等於鍊錶的長度,則該節點將附加到鍊錶的末尾。如果 index 大於鍊錶長度,則不會插入節點。如果index小於0,則在頭部插入節點。
void
addatindex
(int index,
int val)
//新節點的下個節點是index節點
newnode-
>next = cur-
>next;
//index前乙個節點(cur)的下個節點是新節點
cur-
>next = newnode;
//鍊錶長度加1
m_size++;}
//如果索引 index 有效,則刪除鍊錶中的第 index 個節點。
void
deleteatindex
(int index)
//中間節點變數暫存index節點
linkednode *tmp =
newlinkednode(0
);tmp = cur-
>next;
//index前乙個節點(cur)的下乙個節點變為index的下乙個節點
cur-
>next = cur-
>next-
>next;
//釋放index節點的記憶體
delete tmp;
//鍊錶長度減1
m_size--;}
//列印鍊錶
void
printlinkedlist()
}};/**
* your mylinkedlist object will be instantiated and called as such:
* mylinkedlist* obj = new mylinkedlist();
* int param_1 = obj->get(index);
* obj->addathead(val);
* obj->addattail(val);
* obj->addatindex(index,val);
* obj->deleteatindex(index);
*/
Leecode回文鍊錶
貼 class solution string ss s reverse s.begin s.end if ss s return 1 return 0 我自己的思路比較無腦,就是讀出來轉成string反轉比較。然後看到乙個用棧來做的 之前也有想到,但是感覺對於121這種有些麻煩。class sol...
leecode分割鍊錶
給定乙個鍊錶和乙個特定值 x,對鍊錶進行分隔,使得所有小於 x 的節點都在大於或等於 x 的節點之前。你應當保留兩個分割槽中每個節點的初始相對位置。示例 輸入 head 1 4 3 2 5 2,x 3 輸出 1 2 2 4 3 5 解題思路 該題相當於乙個分類問題,基於給定引數x分大和小。基於示例解...
VBA7 0鍊錶
vba中沒有指標,但依舊可以模擬出鍊錶,而且和c語言中的鍊錶功能完全相同,使用方法也類似。可以實現節點的插入 刪除。以下是vba的 不過 正確性沒有經過測試,只是乙個可行的構想。定義雙向鍊錶的節點 public type node lastptrnode as long 上乙個節點的指標。實際上是陣...