package test;
/**
* 反转链表
*
* @author Zealot
*
*/
public class MS_23 {
private class Node {
int m_nKey;
Node m_pNext;
}
private Node reverseIteratively(Node pHead) {
Node pReversedHead = null;
Node pNode = pHead;
Node pPrev = null;
while (pNode != null) {
Node pNext = pNode.m_pNext;
if(pNext == null) {
pReversedHead = pNode;
}
pNode.m_pNext = pPrev;
pPrev = pNode;
pNode = pNext;
}
return pReversedHead;
}
public static void main(String[] args) {
MS_23 ms23 = new MS_23();
Node node1 = ms23.new Node();
Node node2 = ms23.new Node();
Node node3 = ms23.new Node();
Node node4 = ms23.new Node();
Node node5 = ms23.new Node();
Node node6 = ms23.new Node();
node1.m_nKey = 1;
node1.m_pNext = node2;
node2.m_nKey = 2;
node2.m_pNext = node3;
node3.m_nKey = 3;
node3.m_pNext = node4;
node4.m_nKey = 4;
node4.m_pNext = node5;
node5.m_nKey = 5;
node5.m_pNext = node6;
node6.m_nKey = 6;
node6.m_pNext = null;
System.out.println(ms23.reverseIteratively(node1).m_nKey);
}
}
【微软100题】逆置链表
最新推荐文章于 2021-03-13 09:11:14 发布