标签:|| node pre == png 思想 反转 image 迭代
一、题目描述
输入一个链表,反转链表后,输出新链表的表头。
二、思路
使用迭代的思想,从前往后遍历链表。定义三个指针,分别指向三个相邻的结点。反转前两个节点,然后将三个指针依次后移。直到第二个指针为空。最后再处理链表头尾结点。





三、代码
public class 反转链表 {
public class ListNode {
int val;
ListNode next = null;
ListNode(int val) {
this.val = val;
}
}
public ListNode ReverseList(ListNode head) {
if(head==null||head.next==null){
return head;
}
else{
ListNode p1 = head;
ListNode p2 = p1.next;
ListNode p3 = p2.next;
while(p2!=null){
p3 = p2.next;
p2.next = p1; //第二个结点指向第一个结点进行反转
p1 = p2; //第一个结点后移
p2 = p3; //第二个结点后移
}
head.next = null;
head = p1;
return head;
}
}
}
标签:|| node pre == png 思想 反转 image 迭代
原文地址:https://www.cnblogs.com/blzm742624643/p/12237884.html