leetcode
鍊錶的尾插函式一定要注意第乙個結點的問題,由於第一次尾插時,頭結點並沒有指向任何結點,所以對於第乙個結點的尾插實則是「賦值」操作,而其餘結點的尾插才是指標->next
的操作
void
listpushtail
(listnode*
* phead,
int x)if(
*phead==null)
else
current->_next=newnode;
}
所以一定要傳入的是二級指標
輸入乙個鍊錶的頭結點,從尾到頭列印這個鍊錶解決方法有很多種,這裡使用先順序輸入,然後交換陣列前後元素即可
void
swap
(int
* a,
int* b)
int*
reverseprint
(struct listnode* head,
int* returnsize)
int begin=0;
int end=i-1;
while
(begin
*returnsize=i;
return ret;
}
面試題6 從尾到頭列印鍊錶
一 題目 輸入乙個鍊錶的頭結點,從尾到頭反過來列印出每個結點的值。二 關鍵 後進先出 的例子,因此可以使用棧 遞迴來實現功能。三 解釋 四 其他方法 把鍊錶中的指標反轉過來。使用兩個指標,p1和p2,p1的初始值是表頭,p2的初始值是p1 next,只要p2 null,那麼就進行p1 next p2...
面試題6 從尾部到頭列印鍊錶
題目 輸入乙個鍊錶的頭結點,從尾部反過來列印出每個結點的值。c 實現 include includeusing namespace std struct listnode 從尾部列印乙個鍊錶 int printlistreversingly listnode phead while nodes.em...
面試題6 從尾到頭列印鍊錶
輸入乙個鍊錶的頭節點,從尾到頭反過來列印出每個節點的值。鍊錶節點定義如下 struct listnode 從尾到頭列印,能否改變原來的鍊錶?是否允許修改輸入資料 1.能改變原來的鍊錶,將鍊錶的指標反過來。2.使用棧 遞迴 插入節點 在鍊錶的尾端插入乙個節點 若煉表為空,則頭指標的值會改變 所以要使用...