有關鍊錶的面試題(再續)

2021-08-21 04:37:35 字數 954 閱讀 7002

今天讓我們來做一些複雜一些的鏈表面試題。

1.複雜鍊錶的復刻。

typedef struct cn  cn;

cn *copy(cn *pfirst)

//2.複製prandom。

for(pnode=pfirst;pnode!=null;pnode=pnode->pnext->pnext) }

//3.拆鍊錶。

for(pnode=pfirst;pnode!=null;pnode=pnode->pnext)

else

} return pnewfirst;

}cn *buy(int data) //建立複雜鍊錶。

void print(cn *pfirst) //列印各個節點的資料。

printf("\n");

}void test() //測試程式。

2.//判斷兩個鍊錶是否相交,若相交,求交點。

slistnode *jiao(slistnode *a1,slistnode *a2)

while(n2->pnext!=null)

if(n1!=n2) //如果兩個尾結點不同,證明兩個鍊錶不相交。

else

n1=n1->pnext;

}} else if(xpnext;

}while(n1->pnext!=null)

n1=n1->pnext;

}} else if(x>z) //當第二個大時如上操作即可。

while(n2->pnext!=null)

n2=n2->pnext;

}} }

}

這兩個題挺複雜的,需要好好琢磨才能掌握。



和鍊錶有關面試題

面試中被問鍊錶的題目我就不再多說,直接總結題目。1 將鍊錶逆序 這個問題很早就研究過,但後來一次面試的時候我突然緊張忘了,沒答上來。我不知道大家的解法是什麼,我的解法是遍歷鍊錶是用前插發插入節點,最後的鍊錶就是逆序的。python view plain copy class listnode def...

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

1.比較順序表和煉表的優缺點,說說它們分別在什麼場景下使用?順序表 記憶體中位址連續,優點是隨機訪問比較便捷快速,建立也比較簡單,隨機查詢比較方便,可以直接給出下標,排序也方便 簡單。缺點 不夠靈活,刪除增加的工作量叫大,比較麻煩,長度不能實時變化 適用場景 適用於需要大量訪問元素的 而少量增添 刪...

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

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