關於C單鏈表的面試題(高階題)

2021-08-02 17:47:48 字數 1841 閱讀 8709

listnode *iscysle(listnode *list) //判斷單鏈表是否帶環,返回交點

} return null;

}

int getcyclelen(listnode *list) //環的長度

count++;

} return count;

} else

}

listnode* getcyclenenrty(listnode* list,listnode* meetnode) //求環入口點

list = list->next;

meetnode = meetnode->next;

}}

bool checkismeet(listnode* list1,listnode* list2) //判斷鍊錶相交

while (tail2->next)

if (tail1 = tail2)

else

}

listnode* getmeetnode(listnode* list1,listnode* list2) //求相交點

//乙個帶環,乙個不帶環(不可能相交)

else if (((cur1 == null) && cur2) || ((cur2 == null) && cur1))

//兩個都帶環

else

else

cur = cur->next;

}return null; //不相交

} }}

typedef struct complexnode

complexnode;

complexnode* splitcomplexlist(complexnode * plist);

complexnode* buycomplexnode(int d)

ptr->_data = d;

ptr->_next = null;

ptr->_random = null;

return ptr;

}void copycomplexlist(complexnode* plist)

//複雜鍊錶的複製

newlist = plist;

while(newlist)

newlist = newcomplexnode->_next;

}}//鍊錶分離

complexnode* splitcomplexlist(complexnode* plist)

while(tmp)

return list;

}

關於C單鏈表的面試題(基礎篇)

1.比較順序表和煉表的優缺點,說說它們分別在什麼場景下使用?2.從尾到頭列印單鏈表 3.刪除乙個無頭單鏈表的非尾節點 4.在無頭單鏈表的乙個節點前插入乙個節點 5.單鏈表實現約瑟夫環 6.逆置 反轉單鏈表 7.單鏈表排序 氣泡排序 快速排序 8.合併兩個有序鍊錶,合併後依然有序 9.查詢單鏈表的中間...

單鏈表的面試題

自定義標頭檔案部分 void deletenottail pnode pos 刪除乙個無頭單鏈表的非尾節點 void insertnothead pnode phead,pnode pos,datatype data 在無頭單鏈表的乙個非頭節點前插入乙個節點 void josephcircle pn...

C語言實現單鏈表面試題 高階

判斷單鏈表是否帶環?若帶環,求環的入口點 listnode judge band listnode plist 判斷單鏈表是否帶環?若帶環,求環的入口點?if fast next null fast next next null return null fast plist while fast s...