❤ 作者主页:李奕赫揍小邰的博客
❀ 个人介绍:大家好,我是李奕赫!( ̄▽ ̄)~*
🍊 记得点赞、收藏、评论⭐️⭐️⭐️
📣 认真学习!!!🎉🎉
给你单链表的头节点 head ,请你反转链表,并返回反转后的链表。
解法一:迭代法
要想反转链表就需要将链表中的每个next指向前一个就可以。
public ListNode reverseList(ListNode head) {
ListNode p=head;
ListNode prev=null;
while(p!=null){
ListNode temp=p.next;
p.next=prev;
prev=p;
p=temp;
}
return prev;
}
解法二:递归法
public ListNode reverseList(ListNode head) {
if (head == null || head.next == null) {
return head;
}
ListNode newHead = reverseList(head.next);
head.next.next = head;
head.next = null;
return newHead;
}
注:
1、head.next.next = head; 指的是两个结点的反转