A 1 資料結構 1 鍊錶

2022-08-31 06:03:09 字數 1975 閱讀 1619

題目

從尾到頭列印鍊錶

給定節點的值-刪除鍊錶中的節點

找鍊錶的第乙個相交節點

題目1 從尾到頭列印鍊錶

/**

* definition for singly-linked list.

* struct listnode

* };

*/class solution

while( ! ss.empty() )

return ans;

}};

題目2 給定節點的值-刪除鍊錶中的節點

需要判斷沒有節點和只有乙個節點的情況

兩個指標,乙個指標cur跟蹤到要刪除的節點

指標pre跟蹤到刪除節點的前驅節點

當刪除節點是鍊錶的為節點的時候,把 re節點的next設為nullptr

當刪除節點不是尾節點的時候,把當前節點的val改成next的val,把當前節點的指標指向->next->next

* definition for singly-linked list.

* struct listnode

* };

*/class solution

if( head->next == nullptr && head->val ==val )

listnode* cur = head;

listnode* pre = head;

while ( cur->val != val )

if ( cur->next == nullptr )

cur->val = cur->next->val;

cur->next = cur->next->next;

return head;

}};

題目3 兩個鍊錶的第乙個相交節點
/**

* definition for singly-linked list.

* struct listnode

* };

*/class solution

listnode* pa = heada;

listnode* pb = headb;

// 計算兩個鍊錶的長度

int size_a = 0;

int size_b = 0;

while ( pa )

pa = heada;

while ( pb )

pb = headb;

// 步進

int step = 0;

if ( size_a > size_b)

}if ( size_b > size_a)

}// 找節點

while ( pa && pb )

pa = pa->next;

pb = pb->next;

}return nullptr ;

}};

面試題24. 反轉鍊錶

定義乙個函式,輸入乙個鍊錶的頭節點,反轉該鍊錶並輸出反轉後鍊錶的頭節點。

/**

* definition for singly-linked list.

* struct listnode

* };

*/class solution

stacknodes;

listnode* cur = head ;

while( cur != nullptr )

listnode* rehead = nodes.top();

listnode* cur2 = rehead;

while ( nodes.size() >= 1 )

cur2->next = nodes.top();

cur2 = cur2->next;

}cur2->next = nullptr;

return rehead;

}};

資料結構 雙向鍊錶 1

刪除雙向鍊錶與單向鍊錶大同小異,只不過雙向鍊錶還有個節點指向最後乙個節點 新建工程,結構如下 測試1 本身沒有節點,使用setfirstnode test void testsetfirstnode1 結果 測試1 本身沒有節點,使用addnode test void testaddnode1 結果...

excel表中 A 1和A 1和 A1都有什麼不同

通俗一點解釋 countif a 1 a1,a1 指在a 1 a1中查詢與a1的資料相同的所在單元格的個數,當公式下拉時,就變成了countif a 1 a2,a2 countif a 1 a3,a3 但是 countif a 1 a1,a1 1這個公式只是乙個條件,不能單獨成立。當它找出所在區域中...

資料結構與演算法 鍊錶(1)

最近一直在看 劍指offer 這本書,現在總結一下對於鍊錶方面的一點認識。鍊錶的結構很簡單,它由指標把若干個結點連成鏈狀結構。鍊錶的基本操作包括 建立 插入結點 刪除結點等。鍊錶是一種動態儲存結構,在建立鍊錶的時候無需知道鍊錶的長度,當插入乙個結點時,我們只需要為新插入的節點分配記憶體,然後調整指標...