題目
從尾到頭列印鍊錶
給定節點的值-刪除鍊錶中的節點
找鍊錶的第乙個相交節點
題目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 這本書,現在總結一下對於鍊錶方面的一點認識。鍊錶的結構很簡單,它由指標把若干個結點連成鏈狀結構。鍊錶的基本操作包括 建立 插入結點 刪除結點等。鍊錶是一種動態儲存結構,在建立鍊錶的時候無需知道鍊錶的長度,當插入乙個結點時,我們只需要為新插入的節點分配記憶體,然後調整指標...