首先,反转链表就是将节点的 next 域从 存储下一节点地址 变成 存储上一节点地址,就可以实现链表反转
像这样,
变为这样,
但是,单向链表是不存储前驱节点的,所以
第一步,我们要先定义一个空节点作为新链表的头节点,再将原链表的头节点定义一个节点cur;
第二步,将第一个节点的next域内地址记录下来,记作cur_next;
第三步,将新链表的头节点pre的值给到cur节点的next域
第四步,将新链表的头节点pre移动到原链表的头节点cur的位置;
第五步,将cur移动到cur_next的位置;
第六步,重复第二三四五步知道cur为空的时候,pre就移动到新链表头节点的位置了;
第七步,返回pre即可!!
代码如下:
/*
public class ListNode {
int val;
ListNode next = null;
ListNode(int val) {