题目描述:
输入一个链表,反转链表后,输出链表的所有元素。
(hint : 请务必使用链表)
分析:
定义三个指针就能解决问题。
java代码实现:
//翻转链表,非递归算法
private static Node reverseList(LinkedList list) {
Node header = list.getHeader();
//定义三个指针
Node pPrev = null; //指向当前节点的前一个节点
Node pCurrent = list.getHeader().next; //当前节点
Node pNext = null; //指向当前节点的下一个节点
while(pCurrent != null) {
pNext = pCurrent.next;
if(pNext == null)
header = pCurrent ;
//翻转当前节点的指针方向
pCurrent.next = pPrev ;
pPrev = pCurrent ;
pCurrent = pNext ;
}
return header ;
}