鏈表面試題(下)

2021-08-15 18:55:35 字數 1184 閱讀 9679

// 鍊錶帶環問題; 是環,返回相遇點

slistnode* slistiscycle(slistnode* list)

return null;

}//求環長度

int slistcyclelen(slistnode* meetnode)

return count;

}//返回環的入口點

slistnode* slistentrynode(slistnode* list, slistnode* meetnode)

return cur;

}// 鍊錶相交問題

//判斷兩單鏈表是否相交,不帶環

int slistiscrossnode(slistnode* list1, slistnode* list2)

//返回相交點

slistnode* slistcrossnode(slistnode* list1, slistnode* list2)

return cur1;

} else if(len1>len2)

while(cur1!=cur2)

return cur1;

} else

while(cur1!=cur2)

return cur1; }}

//判斷兩單鏈表是否相交,(鍊錶可能帶環)【公升級版】

int slistiscrossnodecycle(slistnode* list1, slistnode* list2)

if((m1==m2))

return 1;

} return 0;

}//返回相交點

slistnode* slistcrossnodecycle(slistnode* list1, slistnode* list2)

if(slistiscrossnodecycle(list1,list2))

return e2;

} return null;

}// 複雜鍊錶複製

//struct complexlistnode

//;

////complexlistnode* copycomplexlist(complexlistnode* list);

//void unionset(slistnode* l1, slistnode* l2);

鏈表面試題(下)

鍊錶帶環問題 是環,返回相遇點 slistnode slistiscycle slistnode list return null 求環長度 int slistcyclelen slistnode meetnode return count 返回環的入口點 slistnode slistentryn...

鏈表面試題

不改變鍊錶結構,從尾到頭列印單鏈表 遞迴實現 void printlistrevers recursively plist phead printf d phead data 當鍊表非常長的時候,遞迴實現的會導致函式呼叫層級很深,可能導致呼叫棧溢位。用棧不會出現此類情況,顯然用棧實現 的魯棒性會好一...

鏈表面試題

從尾到頭列印單鏈表 棧 遞迴 從尾到頭列印鍊錶 includevoid printtailtohead listnode head while s.empty 空間複雜度o n void printtailtoheadr listnode head cout data 刪除乙個無頭單鏈表的非尾結點 ...