当前位置:   article > 正文

链表面试-反转链表(常考题)_给你单链表的头节点 head ,请你反转链表,并返回反转后的链表。 示例 1:

给你单链表的头节点 head ,请你反转链表,并返回反转后的链表。 示例 1:

题目描述:

给你单链表的头节点head,请你反转链表,并返回反转后的链表。

示例描述:

在这里插入图片描述

题解实现:

/**
 * Definition for singly-linked list.
 * public class ListNode {
 *     int val;
 *     ListNode next;
 *     ListNode() {}
 *     ListNode(int val) { this.val = val; }
 *     ListNode(int val, ListNode next) { this.val = val; this.next = next; }
 * }
 */
 //prev,cur,curNext,三个引用配合完成链表反转,最后返回newHead反转之后的头节点也就返回了反转之后的链表,这种题找五个节点组成链表画一下会更加形象。
class Solution {
    public ListNode reverseList(ListNode head) {//这里链表反转定义四个引用
            ListNode prev = null;//一开始暂不确定,就先置为空
            ListNode newHead = null;//一开始暂不确定,就先置为空
            ListNode cur = head;
            ListNode curNext;
            while(cur != null){
                curNext = cur.next;//放在循环里面是因为,如果放在外面,该链表为null的话,cur.next会产生空指针异常
                if(curNext == null){
                    newHead = cur;//到这一步,就将原来的尾节点找到作为反转之后的头节点
                }
                cur.next = prev;
                prev = cur;
                cur = curNext;
            }
            return newHead;
    }
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/运维做开发/article/detail/1016806
推荐阅读
相关标签
  

闽ICP备14008679号