package com.mxnet;
import java.util.Stack;
public class Solution206 {
public static void main(String[] args) {
}
/**
* 给你单链表的头节点 head ,请你反转链表,并返回反转后的链表。
* @param head
* @return
* 思路:
* 1. 因为要完成链表反转,则只需改变链表的链接顺序
* 2. 即将当前节点作为下一个节点的下一个节点
* 3. 保存当前节点的前驱节点和后继节点,完成链表的转换
* 4. 遍历链表完成反转
*/
public ListNode reverseList(ListNode head) {
//记录前驱节点
ListNode prev = null;
//使用辅助指针指向头节点
ListNode cur = head;
//循环遍历链表所有节点,完成反转
while (cur != null){
//记录当前节点的下一个节点
ListNode next = cur.next;
//使当前节点指向它的前驱节点
cur.next = prev;
//在进行下一次循环时 使当前节点成为下一个节点的前驱节点
prev = cur;
//移动当前节点
cur = next;
}
return prev;
}
}