LeetCode反转链表问题(迭代解法+递归解法)

反转一个单链表。

示例:

输入: 1->2->3->4->5->NULL
输出: 5->4->3->2->1->NULL
进阶:
你可以迭代或递归地反转链表。你能否用两种方法解决这道题?

以下为迭代解法:

class Solution {
    public ListNode reverseList(ListNode head) {
        ListNode prev = null;
        ListNode cur = head;
        while(cur != null){
        ListNode tempNode = cur.next;
        cur.next = prev;
        prev = cur;
        cur = tempNode;
    }
    return prev;
}

以下为递归解法:

class Solution {
    public ListNode reverseList(ListNode head) {
        if(head == null || head.next == null){
        return head;
        ListNode cur = reverseList(head.next);
        head.next.next = head;
        head.next = null;
   		return cur;
}

猜你喜欢

转载自blog.csdn.net/DIDI___/article/details/103569042
今日推荐