LC 反转链表

Posted yangbocsu

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了LC 反转链表相关的知识,希望对你有一定的参考价值。

LC 反转链表


  • 给你单链表的头节点 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; }
 * }
 */
class Solution {
    public ListNode reverseList(ListNode head) {
        ListNode res = head;
        ListNode head1 = head;       //用来算链表长度

        int len = 0;
        while (head1 != null)       //用来算链表长度
        {
            len++;
            head1 = head1.next;

        }
        int[] arr = new int[len];   //先将每个节点的值保存起来
        head1 = head;
        for (int i = 0; i < len; i++)
        {
            arr[i] = head1.val;
            head1 = head1.next;
        }

        head1 = head;                //逆序赋值
        for (int i = len - 1; i >= 0; i--)
        {
            head1.val = arr[i];
            head1 = head1.next;
        }

        return res;
    }
}

以上是关于LC 反转链表的主要内容,如果未能解决你的问题,请参考以下文章

lc 反转链表

LC206-反转链表

力扣算法JS LC [203. 移除链表元素] LC [206. 反转链表]

基础链表问题练习2

C语言反转单向链表的代码

算法刷题:LC初级算法