劍指offer 逆置列印鍊錶

2021-08-20 11:29:53 字數 884 閱讀 8770

從尾到頭列印鍊錶

題目描述:

輸入乙個鍊錶的頭結點,從尾到頭反過來列印出每個節點的值。

解題思路:

1.通過借助容器vector和棧stack共同完成 ----後進先出 

2.不使用棧結構stack,直接利用翻轉函式reverse()函式和容器vector

3.不使用容器vector,直接用print結合遞迴方式實現鍊錶的反向列印

//鍊錶結構體定義

struct listnode

};

//方法一:通過借助容器vector和棧stack共同完成 ----後進先出

class solution

while (!nodes.empty())

return result;

}};

//方法二: 不使用棧結構stack,直接利用翻轉函式reverse()函式和容器vector 

class solution

reverse(result.begin(),result.end());

return result;

}};

//方法三: 不使用容器vector,直接用print結合遞迴方式實現鍊錶的反向列印

class solution

// and then print the current node

print("%d",phead->val);}}

};

劍指offer 從尾到頭列印鍊錶(鍊錶)

輸入乙個鍊錶,按煉錶值從尾到頭的順序返回乙個arraylist。1 將鍊錶反轉,會改變鍊錶的結構,一般不採用 2 使用棧,從頭到尾讀取資料並存入棧中,輸出棧中的全部內容 3 使用遞迴實現,遞迴在本質上就是乙個棧結構,每次列印當前值時,先列印後乙個值,使用遞迴 更簡潔。但是鍊錶過長將導致遞迴呼叫過深,...

劍指offer 鍊錶

單向鍊錶的結構定義 typedef int datatype struct listnode 問題1 往鍊錶的末尾新增乙個結點 給定頭結點,往末尾插入乙個結點 void insertnode listnode head,datatype key listnode p head while p nex...

劍指offer 鍊錶

鍊錶 鍊錶是一種動態資料結構 struct listnode 往鍊錶的末尾新增乙個節點的c 程式如下 void addtotail listnode phead,int value 注意第乙個引數phead是乙個指向指標的指標。當我們往乙個空鍊錶插入乙個結點時,else pnode m pnext ...