206. 反转链表
作者:互联网
反转一个单链表。
示例:
输入: 1->2->3->4->5->NULL
输出: 5->4->3->2->1->NULL
进阶:
你可以迭代或递归地反转链表。你能否用两种方法解决这道题?
class Solution {
public ListNode reverseList(ListNode head) {
ListNode dummyHead = new ListNode(-1);
dummyHead.next = head;
if(head == null ||head.next == null){
return head;
}else {
ListNode f = dummyHead.next;
ListNode s = f.next;
while(s!=null){
f.next = s.next;
s.next = dummyHead.next;
dummyHead.next = s;
s = f.next;
}
}
return dummyHead.next;
}
}
class Solution {
public ListNode reverseList(ListNode head) {
ListNode fir = new ListNode(-1);
// 从前到后遍历原链表
for(ListNode temp = head;temp!=null;temp=temp.next) {
// 使用头插法插入新链表
ListNode newNode = new ListNode(temp.val);
newNode.next = fir.next;
fir.next = newNode;
}
return fir.next;
}
}
标签:head,dummyHead,ListNode,temp,206,反转,next,链表 来源: https://blog.csdn.net/weixin_43573534/article/details/88561839