public class ListNode {
int val;
ListNode next;
ListNode(int x) { val = x; }
}
class Solution {
public ListNode reverseList(ListNode head) {
//对于空链表,不需要任何处理
if(head == null){
return null;
}
//对于只有一个元素的列表,也不要处理
if (head.next == null){
return head;
}
//对于多个节点,始终保持prev在cur之前
ListNode newHead = null;
ListNode prev = null;
ListNode cur = head;
while (cur != null){
ListNode next = cur.next;
if (next != null){
newHead = cur;
}
//翻转指针的指向
cur.next = prev;
//更新prev和cur
prev = cur;
cur = next;
}
return newHead;
}
}
Java实现:反转一个单链表
最新推荐文章于 2023-09-23 23:46:17 发布