相关标签
一、题目要求
二、题解和代码实现
1.题解
2.代码实现
代码如下(示例):
/**
* Definition for singly-linked list.
* public class ListNode {
* int val;
* ListNode next;
* ListNode() {}
* ListNode(int val) { this.val = val; }
* ListNode(int val, ListNode next) { this.val = val; this.next = next; }
* }
*/
class Solution {
public ListNode reverseList(ListNode head) {
ListNode per = null;//新建指针变量,用于记录被反转节点的前一节点
while (head!=null){//遍历链表
ListNode next = head.next;//记录下一个要被反转的节点
head.next=per;//当前节点反转,指向前一个节点
per = head;//指针移动,移动到最后一个已经反转完的节点
head=next;//遍历指针移动,指向下一个要被反转的节点
}
//当循环结束,per会指向最后一个反转完的元素,也就是反转完链表的头元素
return per;
}
}