2025年单向链表逆置(单向链表的逆转)

单向链表逆置(单向链表的逆转)include stdafx h include lt iostream gt include lt fstream gt using namespace std struct ListNode

大家好,我是讯享网,很高兴认识大家。



#include stdafx.h #include <iostream> #include <fstream> using namespace std; struct ListNode { 
讯享网</span><span style="color: rgba(0, 0, 255, 1)">int</span><span style="color: rgba(0, 0, 0, 1)"> m_nKey; ListNode</span>*<span style="color: rgba(0, 0, 0, 1)"> m_pNext; 
};
讯享网
//构造链表 void CreateList(ListNode *&pHead) {
fstream fin(</span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">list.txt</span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(0, 0, 0, 1)">); ListNode </span>*pNode =<span style="color: rgba(0, 0, 0, 1)"> NULL; ListNode </span>*pTmp =<span style="color: rgba(0, 0, 0, 1)"> NULL; </span><span style="color: rgba(0, 0, 255, 1)">int</span><span style="color: rgba(0, 0, 0, 1)"> data; fin</span>&gt;&gt;<span style="color: rgba(0, 0, 0, 1)">data; </span><span style="color: rgba(0, 0, 255, 1)">while</span><span style="color: rgba(0, 0, 0, 1)"> (data) { pNode </span>= <span style="color: rgba(0, 0, 255, 1)">new</span><span style="color: rgba(0, 0, 0, 1)"> ListNode; pNode</span>-&gt;m_nKey =<span style="color: rgba(0, 0, 0, 1)"> data; pNode</span>-&gt;m_pNext =<span style="color: rgba(0, 0, 0, 1)"> NULL; </span><span style="color: rgba(0, 0, 255, 1)">if</span> (NULL ==<span style="color: rgba(0, 0, 0, 1)"> pHead) { pHead </span>=<span style="color: rgba(0, 0, 0, 1)"> pNode; pTmp </span>=<span style="color: rgba(0, 0, 0, 1)"> pNode; } </span><span style="color: rgba(0, 0, 255, 1)">else</span><span style="color: rgba(0, 0, 0, 1)"> { pTmp</span>-&gt;m_pNext =<span style="color: rgba(0, 0, 0, 1)"> pNode; pTmp </span>=<span style="color: rgba(0, 0, 0, 1)"> pNode; } fin</span>&gt;&gt;<span style="color: rgba(0, 0, 0, 1)">data; } 
} //翻转单链表 void ReverseLink(ListNode *&pHead) {
讯享网</span><span style="color: rgba(0, 0, 255, 1)">if</span> (NULL ==<span style="color: rgba(0, 0, 0, 1)"> pHead) { </span><span style="color: rgba(0, 0, 255, 1)">return</span><span style="color: rgba(0, 0, 0, 1)">; } ListNode </span>*pNode =<span style="color: rgba(0, 0, 0, 1)"> pHead; ListNode </span>*Prev =<span style="color: rgba(0, 0, 0, 1)"> NULL; ListNode </span>*pNext =<span style="color: rgba(0, 0, 0, 1)"> NULL; </span><span style="color: rgba(0, 0, 255, 1)">while</span> (NULL !=<span style="color: rgba(0, 0, 0, 1)"> pNode) { pNext </span>= pNode-&gt;<span style="color: rgba(0, 0, 0, 1)">m_pNext; </span><span style="color: rgba(0, 0, 255, 1)">if</span> (NULL ==<span style="color: rgba(0, 0, 0, 1)"> pNext) { pHead </span>=<span style="color: rgba(0, 0, 0, 1)"> pNode; } pNode</span>-&gt;m_pNext =<span style="color: rgba(0, 0, 0, 1)"> Prev; Prev </span>=<span style="color: rgba(0, 0, 0, 1)"> pNode; pNode </span>=<span style="color: rgba(0, 0, 0, 1)"> pNext; } 
} void PrintList(ListNode *pHead) {
</span><span style="color: rgba(0, 0, 255, 1)">if</span> (NULL ==<span style="color: rgba(0, 0, 0, 1)"> pHead) { </span><span style="color: rgba(0, 0, 255, 1)">return</span><span style="color: rgba(0, 0, 0, 1)">; } ListNode </span>*pNode =<span style="color: rgba(0, 0, 0, 1)"> pHead; </span><span style="color: rgba(0, 0, 255, 1)">while</span> (NULL !=<span style="color: rgba(0, 0, 0, 1)"> pNode) { cout</span>&lt;&lt;pNode-&gt;m_nKey&lt;&lt;<span style="color: rgba(128, 0, 0, 1)">"</span> <span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(0, 0, 0, 1)">; pNode </span>= pNode-&gt;<span style="color: rgba(0, 0, 0, 1)">m_pNext; } cout</span>&lt;&lt;<span style="color: rgba(0, 0, 0, 1)">endl; 
} int _tmain(int argc, _TCHAR* argv[]) {
讯享网ListNode </span>*pHead =<span style="color: rgba(0, 0, 0, 1)"> NULL; cout</span>&lt;&lt;<span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">原来的链表:</span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(0, 0, 0, 1)">; CreateList(pHead); PrintList(pHead); ReverseLink(pHead); cout</span>&lt;&lt;<span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">翻转的链表:</span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(0, 0, 0, 1)">; PrintList(pHead); </span><span style="color: rgba(0, 0, 255, 1)">return</span> <span style="color: rgba(128, 0, 128, 1)">0</span><span style="color: rgba(0, 0, 0, 1)">; 
}

讯享网

小讯
上一篇 2025-06-14 10:50
下一篇 2025-05-05 18:00

相关推荐

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/171889.html