题目描述
反转一个单链表。
示例:
输入: 1->2->3->4->5->NULL
输出: 5->4->3->2->1->NULL
运行结果
解题思路
使用三个指针p1,p2,p3
使p2指向p1,之后将三个指针右移(p3只是用来记录p2的后一个元素)
注意点:开始时令p1为空,p2为head
java代码
/**
* Definition for singly-linked list.
* public class ListNode {
* int val;
* ListNode next;
* ListNode(int x) { val = x; }
* }
*/
class Solution {
public ListNode reverseList(ListNode head) {
if(head==null || head.next==null){
return head;
}
ListNode p1=null;
ListNode p2=head;
while(p2 != null){
ListNode p3=p2.next;
p2.next=p1;
p1=p2;
p2=p3;
}
return p1;
}
}
京公网安备 11010502036488号