剑指offer第15题“反转链表”

Posted by Cfeng on March 11, 2019

反转链表

题目描述

输入一个链表,反转链表后,输出新链表的表头。。 ***

思路

继续用Java做链表题,本题就是顺序交换嘛 那可以定义三个指针,left指向刚更新好的点,最后会指向原来的表尾,所以最后是return left; 第二个指针就是mid,它指向正要被转换的点,转换完后往后移动一位即可。 第三个指针是right,它指向下一个要被转换的点。

Java实现

/*
public class ListNode {
    int val;
    ListNode next = null;

    ListNode(int val) {
        this.val = val;
    }
}*/
public class Solution {
    public ListNode ReverseList(ListNode head) {
        ListNode left=null;
        ListNode mid=null;
        ListNode right=null;
        mid=head;
        while(mid!=null){
            right = mid.next;
            mid.next = left;
            left = mid;
            mid = right;
        }
        return left;
    }
}