鏈表反轉:
數據結構如下:
typedef struct _node
{
int data;
struct _node *next;
} node;
完成函數 node *reverse(node *head),head爲不帶頭節點的鏈表的首部。
node *reverse(node *head)
{
node *tmp = null; // 緩衝變量
node *newhead = null; // 反轉後的新頭節點
if ( head==null ) return head; // 空鏈表的情況
if ( head->next==null ) return head; // 鏈表只有一個節點的情況
while ( head ) // 判斷有沒有移動到最後
{
tmp=head->next; // 臨時記錄下一個節點
head->next = newhead; // 把原來鏈表中的節點放到新的鏈表的首部
newhead = head;
head = tmp;
} // end of while
return newhead;
} // end of reverse
鏈表反轉
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章