- 题目描述:反转链表(没有头结点)
- 思路:总共需要三个指针变量,一个指针指向当前结点,一个指向其前驱结点,一个指向后继结点,遍历链表,把当前结点的指针域指向前驱结点,然后三个指针向后走,遍历结束后,返回指向前驱结点的指针即可
/**
* 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 preNode=null;//当前结点的前驱结点
ListNode currNode=head;//当前结点
while(currNode!=null){
ListNode tempNode=currNode.next;//临时结点,记录当前结点的后驱结点,因为当前结点的指针等下要改变
currNode.next=preNode;//当前结点的指针指向前驱结点
preNode=currNode;//前驱指针向前走
currNode=tempNode;//当前结点指针向前走
}
return preNode;
}
}