手写代码:反转链表 (Java 版)

发布于 2020-01-31 16:16:17
关注者
0
被浏览
737
1 个回答
  • 面试哥
    面试哥 2020-01-31
    为面试而生,有面试问题,就找面试哥。

    参考回答:

    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;
    }
    

     

推荐阅读
面圈网VIP题库

面圈网VIP题库全新上线,海量真题题库资源。 90大类考试,超10万份考试真题开放下载啦

去下载看看