單鏈表相關的面試題

2022-08-05 18:03:17 字數 1752 閱讀 7067

#pragma once#include

"list.h"//

1.逆序列印單鏈表

template

void list::printtailtohead(node *phead)

//2.刪除無頭節點的單鏈表的非尾節點

template

void list::delnontailnode(node *pos)

//3.無頭單鏈表某一節點前插入乙個節點

template

void list::insertfrontnode(node*pos, t x)

//4.逆置單鏈表

template

void list::reverselist()

_head =new_head;}//

5.單鏈表的氣泡排序

template

void list::bubblesortoflist()

cur = cur->_next;

}tmp == null ? sign = false : tail =cur;;

}}//

6.中間節點

templatelistnode

* list::middleoflist()

return

slow;}//

7.單鏈表中的倒數第 k 個節點

templatelistnode

* list::reciprocalk(int

k)

while

(tmp)

return

result;}//

8.判斷乙個鍊錶是否帶環,如果帶環求出環的長度以及入口點

templatelistnode

* list::isringlist()

while (fast ==slow);

cout

<< "

環的節點的個數為:

"<< count <

while (input ==slow)

return

input;}}

return

null;}//

9.判斷兩個鍊錶是否相交,如果相交求出交點(不帶環)

templatelistnode

* list::iscross(const list& list1, const list&list2)

while

(tmp2)

tmp1 = list1._head, tmp2 = list2._head; /*

重新指向鍊錶的頭

*/int n = abs(length1 -length2);

if (length1 > length2) /*

如果鍊錶一 長於 鍊錶二

*/ }

else

/*如果鍊錶二 長於 鍊錶一

*/ }

while

(tmp1)

}return null; /*

沒找到,null 返回*/}

//10.判斷兩個鍊錶是否相交,如果相交求出交點(不確定帶不帶環)

templatelistnode

* list::iscrossstrengthen(const list& list1, const list&list2)

}return

false; /*

乙個鍊錶帶環,乙個不帶環

*/}

單鏈表的面試題

單鏈表相關的面試題

slist.h void printlistfromtail2head pnode phead 從尾到頭列印單鏈表 void erasenottailnode pnode pos 刪除非尾結點 void insertfront pnode pos,datatype data 無頭單鏈表插入結點 vo...

單鏈表相關熱點面試題(一)

對於單鏈表相關的問題,往往是面試的熱點,在此我總結了一些單鏈表相關熱點面試題 一 比較順序表和煉表的優缺點,說說它們分別在什麼場景下使用?一 順序表的特點是邏輯上相鄰的資料元素,物理儲存位置也相鄰,並且,順序表的儲存空間需要預分配。它的優點是 1 方法簡單,各種高階語言中都有陣列,容易實現。2 不用...

單鏈表詳解以及單鏈表相關面試題總結

目錄 1.單鏈表的定義 2.獲取單鏈表的第i個元素 3.單鏈表的插入操作 4.單鏈表的刪除操作 5.單鏈表的整表刪除 6.判斷兩個單鏈表是否相交 7.如果兩個鍊錶相交,如何尋找相交的節點 8.判斷乙個單鏈表是否有環 9.如果乙個鍊錶有環,如何找到環的入口 10.找到單鏈表中的倒數第k個節點 11.兩...