鍊錶的面試題 二

2021-08-09 09:09:36 字數 2100 閱讀 7631

// 使用冒泡對單鏈表進行排序

void bubblesort(pnode phead)

// 合併兩個已序鍊錶,合併之後新鍊錶依然有序

pnode mergelist(pnode phead1, pnode phead2)

// 查詢無頭單鏈表的倒數第k個結點

pnode findlastknode(pnode phead, int k);

// 刪除無頭單鏈表的倒數第k個結點

pnode deletelastknode(pnode phead, int k);

// 判斷鍊錶是否帶環,如果帶環求環的長度,並給出入口點

pnode hascircle(pnode phead);

int getcirclelen(pnode phead);

pnode getenternode(pnode phead, pnode pmeetnode);

void bubblesort(pnode phead)//氣泡排序

考慮以下因素:

phead1為空—–返回phead2

phead2為空—–返回phead1

當phead1和phead2都不為空時,分析如圖示:

}

// 判斷鍊錶是否帶環,若帶環給出相遇點  

pnode hascircle(pnode phead)

else

}return

null;}}

}// 求環的長度

int getcirclelen(pnode pmeetnode)

return count;

}// 求環的入口點

pnode getenternode(pnode phead, pnode pmeetnode)

else

return pslow;}}

}

鍊錶的面試題

1 比較順序表和煉表的優缺點,它們分別在什麼場景下使用?1 順序表支援隨機訪問,單鏈表不支援隨機訪問。2 順序表插入 刪除資料效率很低,時間複雜度為o n 除尾插和尾刪 單鏈表插入 刪除效率更高,時間複雜度為o 1 3 順序表的cpu高速緩衝效率更高,單鏈表cpu高速緩衝效率低。2 列印單向鍊錶 v...

鍊錶的面試題

slist.h include include include typedef int datatype typedef struct listnode node,pnode 生成乙個新結點 pnode buyslistnode datatype data 列印鍊錶 void printslist ...

有關鍊錶的經典面試題(二)

1.判斷單鏈表是否帶環?若帶環,求環的長度?求環的入口點?並計算每個演算法的時間複雜度 空間複雜度。思路 利用快慢指標,快指標一次走兩步,慢指標一次走一步,如快慢指標有相遇點,則一定有環。找到相遇點後,求環長度問題,可以轉換為求頭結點到 相遇點之間的長度問題。求入口點時,讓快指標回到頭結點,兩指標再...