博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
LeetCode--LinkedList--206. Reverse Linked List(Easy)
阅读量:4585 次
发布时间:2019-06-09

本文共 1421 字,大约阅读时间需要 4 分钟。

206. Reverse Linked List(Easy)

题目地址

Reverse a singly linked list.Example:Input: 1->2->3->4->5->NULLOutput: 5->4->3->2->1->NULLFollow up:A linked list can be reversed either iteratively or recursively. Could you implement both?

solution

题意是给定一个链表,要求将链表反转,且需要分别用迭代和递归实现。

解法一:迭代

/** * 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 start = new ListNode(-1);        ListNode p ,temp;        while (head != null)        {            p = head.next;            temp = start.next;            start.next = head;            head.next = temp;            head = p;        }        return start.next;    }}

解析:构造一个额外的头结点,用链表的头插法即可搞定。

解法二:递归

class Solution {    public ListNode reverseList(ListNode head) {        if (head == null || head.next == null)  //链表为空或当前结点的下一个结点为空即返回head            return head;        ListNode p = reverseList(head.next);  //新链表的头结点        head.next.next = head;                //将当前结点的下一个结点的下一个个结点置为head,即反转        head.next = null;    //断掉head结点与下一个结点的连接        return p;            //返回头结点    }}

解析:首先判断链表为空或当前结点的下一个结点为空即返回head,否则递归访问链表;当递归条件不满足时,返回新链表的头结点,并将头结点赋值给p,即p成为新链表的头结点。此时,将当前结点的下一个结点的下一个结点置为head,即翻转,然后断掉head结点与下一个结点的连接,最后返回头结点p。

reference

Notes

1.递归算法的逻辑不太好想清楚,得仔细推敲!

转载于:https://www.cnblogs.com/victorxiao/p/11184521.html

你可能感兴趣的文章
Hibernate入门(三)—— 一对多、多对多关系
查看>>
Openstack中查看虚拟机console log的几种方法
查看>>
科技创新平台年报系统利益相关者分析
查看>>
家庭作业第三章3.57
查看>>
ERROR! MySQL manager or server PID file could not be found!
查看>>
nginx server_name匹配顺序
查看>>
数据备份希望使用gistore备份mongo数据
查看>>
【杂谈】新学年的第一篇博客
查看>>
MySQL性能优化的21条最佳经验【转】
查看>>
关于udo3d双目相机的嵌入式板子系统重装
查看>>
nginx安装缺少依赖记录
查看>>
vcs编译verilog/sysverilog并执行
查看>>
Mvc 提交表单的4种方法全程详解
查看>>
质因数分解
查看>>
2015年4月30日
查看>>
《Intel汇编第5版》 条件汇编伪指令
查看>>
mybatis如何根据mapper接口生成其实现类(springboot)
查看>>
K8S集群技术
查看>>
Failed to load resource: the server responded with a status of 404 (Not Found) favicon.ico文件找不到...
查看>>
Linux基础命令小结
查看>>