(Easy) Reverse linked list LeetCode
Posted codingyangmao
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了(Easy) Reverse linked list LeetCode相关的知识,希望对你有一定的参考价值。
Description:
Reverse a singly linked list.
Example:
Input: 1->2->3->4->5->NULL Output: 5->4->3->2->1->NULL
Follow up:
A linked list can be reversed either iteratively or recursively. Could you implement both?
Accepted
661,364
Submissions
1,172,734
Solution:
Explanation:
Iterative Method
- Initialize three pointers prev as NULL, curr as head and next as NULL.
- Iterate trough the linked list. In loop, do following.
// Before changing next of current,
// store next node
next = curr->next// Now change next of current
// This is where actual reversing happens
curr->next = prev// Move prev and curr one step forward
prev = curr
curr = next
/** * Definition for singly-linked list. * public class ListNode * int val; * ListNode next; * ListNode(int x) val = x; * */ class Solution public ListNode reverseList(ListNode head) ListNode prev =null, curr = head, next = null; while(curr!=null) next = curr.next; curr.next = prev; prev = curr; curr = next; return prev;
以上是关于(Easy) Reverse linked list LeetCode的主要内容,如果未能解决你的问题,请参考以下文章
Lintcode36 Reverse Linked List II solution 题解