美文网首页
15、反转链表(循环和递归两种方式)

15、反转链表(循环和递归两种方式)

作者: quiterr | 来源:发表于2017-09-02 21:41 被阅读0次

题目描述
输入一个链表,反转链表后,输出链表的所有元素。

leetcode上有详细说明

迭代法

/*
public class ListNode {
    int val;
    ListNode next = null;

    ListNode(int val) {
        this.val = val;
    }
}*/
public class Solution {
    public ListNode ReverseList(ListNode head) {
        if(head==null){
            return null;
        }
        ListNode newHead = null;
        ListNode tmp = null;
        while(head!=null){
            tmp = newHead;
            newHead = head;
            head = head.next;
            newHead.next = tmp;
        }
        return newHead;
    }
}

递归法:

/*
public class ListNode {
    int val;
    ListNode next = null;

    ListNode(int val) {
        this.val = val;
    }
}*/
public class Solution {
    public ListNode ReverseList(ListNode head) {
        if(head ==null || head.next==null){
            return head;
        }
        ListNode p = ReverseList(head.next);
        head.next.next = head;  
        head.next = null;
        return p;
    }
}

相关文章

  • 反转链表(java实现)

    链表反转 节点数据结构如下: 链表反转的两种方式:递归和非递归 递归方式如下: 非递归方式如下:

  • 链表反转

    循环反转链表 递归反转链表

  • 15、反转链表(循环和递归两种方式)

    题目描述输入一个链表,反转链表后,输出链表的所有元素。 leetcode上有详细说明 迭代法 递归法:

  • 链表相关的题

    单向链表反转 如1->2->3->4,反转成4->3->2->1反转链表有2种做法,递归和循环。递归写法: 循环写...

  • 反转链表(Python)

    链表反转递归法和循环法的实现:

  • 07-Python反转单链表

    单链表的反转可以使用循环,也可以使用递归的方式 1.循环反转单链表 循环的方法中,使用pre指向前一个结点,cur...

  • 8.29 leetcode刷题

    链表题型:206 反转链表:循环: 递归: 思路:可以利用循环或者递归解决,递归代码简短,思路清晰,但是性能不如循...

  • 206反转链表

    题目:反转链表,LeetCode206 要求用循环和递归两种方法。 一、循环解法 设置两个外部引用,从前到后的,不...

  • Algorithm小白入门 -- 单链表

    单链表递归反转链表k个一组反转链表回文链表 1. 递归反转链表 单链表节点的结构如下: 1.1 递归反转整个单链表...

  • 链表—反转链表

    反转一个单链表。 示例: 进阶: 你可以迭代或递归地反转链表。你能否用两种方法解决这道题? 1. 迭代方式 思路:...

网友评论

      本文标题:15、反转链表(循环和递归两种方式)

      本文链接:https://www.haomeiwen.com/subject/ulttwttx.html