一: 將指針指向表尾
一般情況下,當我們創建一個單鏈表時,通常會將指針指向表頭。但當我們創建一個循環單鏈表而且需要對錶頭表尾頻繁操作時,我們是否還會爲它創建一個頭指針呢?下面小編來分析一下:
定義頭指針: 當我們查找表頭時,時間複雜度爲O(1),當我們查找表尾時,時間複雜度爲O(n);
定義尾指針: 當我們查找表頭時,因爲尾指針和頭指針相連,我們只需查找尾指針的下一個節點,時間複雜度爲: O(1),當我們查找頭指針時,時間複雜度爲: O(1);
很顯然,當我們需要對錶頭表尾頻繁操作時,定義尾指針會完虐定義頭指針。
二: 不要陷入死循環
循環單鏈表沒有明顯的結束條件,當我們不注意時,很容易陷入死循環。此時,我們可以設置一個標記點作爲循環的標記,當我們知道表長,我們也可以設置一個計數器來結束循環。