栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

leetcode刷题题解——206.反转链表

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

leetcode刷题题解——206.反转链表

递归解决方案
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;
    }
    相信函数能返回后面结点反转之后的新头结点那么返回的新头结点指向的是head.next再令head.next.next指向head,并将head.next置空即可避免无限递归,寻找递归结束条件问题解决
迭代解决方案
public ListNode reverseList(ListNode head) {
        ListNode newhead=null;
        while (head!=null){
            ListNode temp = head.next;
            head.next = newhead;
            newhead = head;
            head = temp;
        }
        return newhead;
    }
    设定while循环条件再定义暂存变量temp,暂存head.next,避免找不到下一结点head.next指向newhead,newhead再指向head,完成对newhead的头插入令head指向temp,即指向下一结点循环完成上述过程,即可反转链表
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/726953.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号