第5章 第9节 数组

推荐给朋友

● 算法题,反转链表

参考回答:

public class ListNode {
public int data;
public ListNode next;
}
public ListNode reverseList(ListNode pHead){

ListNode pReversedHead = null; //反转过后的单链表存储头结点

ListNode pNode = pHead; //定义pNode指向pHead;

ListNode pPrev = null; //定义存储前一个结点

while(pNode != null){

ListNode pNext = pNode.next; //定义pNext指向pNode的下一个结点

if(pNext==null){ //如果pNode的下一个结点为空,则pNode即为结果

pReversedHead = pNode;

}

pNode.next = pPrev; //修改pNode的指针域指向pPrev

pPrev = pNode; //将pNode结点复制给pPrev

pNode = pNext; //将pNode的下一个结点复制给pNode

}
return pReversedHead;
}