暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

Java 反转链表

328
示例:

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

此题的思路是逐个反转,先变成 NULL<-1  2->3->4->5->NULL; 然后是 1<-2  3->4->5->NULL; 接着是 1<-2<-3  4->5->NULL,以此类推。那么我们首先就要先创建一个空节点为 prev,使得 1 指向它,但是,需要先把 2 这个节点保存起来,不然当 1 指向 NULL 后就失去了 2 以后的数据。完成第一次反转后就一直迭代下去。看代码吧:
    /**
    * 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 prev = null;
    while(head != null) {
    ListNode next = head.next;
    head.next = prev; // 翻转

    prev = head;
    head = next;
    }
    return prev;
    }
    }



    文章转载自大数据的奇妙冒险,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

    评论