LeetCode 206 question: Reverse a singly linked list

  1. Reverse Linked List
    Reverse a singly linked list.

Example:

输入: 1->2->3->4->5->NULL
输出: 5->4->3->2->1->NULL

Code:

/**
 * Definition for singly-linked list.
 * public class ListNode {
 *     int val;
 *     ListNode next;
 *     ListNode(int x) { val = x; }
 * }
 */
class Solution {
    
    
    public ListNode reverseList(ListNode head) {
    
    
        ListNode cur = head;//定义cur指向需要需要反转链表
        ListNode prev = null;//定义一个prev指向需要反转的前一个链表
        ListNode newhead = null;//定义一个newHead
        while (cur != null) {
    
    
        ListNode curNext = cur.next;//定义一个newHead指向需要反转的链表的下一个链表
        if(curNext == null){
    
    
            newhead =cur;//cur走到最后一个链表时,重新定义链表的头
        }
        cur.next =prev;//反转链表
        prev =cur;//在cur往后移动之前确定cur
        cur = curNext;//cur往后移动
        }
        return newhead;//循环结束,返回链表的头

    }
}

result:
Insert picture description here
Insert picture description here

Guess you like

Origin blog.csdn.net/weixin_44436675/article/details/112428186