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

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

Reverse a singly linked list.

Solution 1:

思路:null的使用。用一个null node来承接,一个一个接上去即可。一刷的时候还觉得这node转化好麻烦好神奇,熟悉之后其实做起来很快。

  

/** * Definition for singly-linked list. * public class ListNode { *     int val; *     ListNode next; *     ListNode(int x) { val = x; } * } */public class Solution {    public ListNode reverseList(ListNode head) {        if(head==null)        {            return head;        }        ListNode last=null;        while(head!=null)        {            ListNode copy=head.next;            head.next=last;            last=head;            head=copy;        }        return last;            }}

Solution 2: 

follow up : Use Recursion

思路:如果head.next不是null,递归head.next,注意先把head.next指针存好,方便于reverse之后接上head。因为返回的是一个listnode,用一个dummy node来把node用于输出。如果head.next是null的话,直接返回head即可。Recursion真的是一个神器!

/** * Definition for singly-linked list. * public class ListNode { *     int val; *     ListNode next; *     ListNode(int x) { val = x; } * } */public class Solution {    public ListNode reverseList(ListNode head) {        if(head==null)        {            return head;        }        ListNode dummy=new ListNode(-1);        if(head.next!=null)        {            ListNode copy=head.next;            dummy.next=reverseList(head.next);            copy.next=head;            head.next=null;        }        else        {            return head;        }        return dummy.next;            }}

 

转载于:https://www.cnblogs.com/Machelsky/p/5858680.html

你可能感兴趣的文章
Android设计模式系列--原型模式
查看>>
免费的论文查重网站
查看>>
C语言程序第一次作业
查看>>
leetcode-Sort List
查看>>
中文词频统计
查看>>
了解node.js
查看>>
想做移动开发,先看看别人怎么做
查看>>
Eclipse相关集锦
查看>>
虚拟化架构中小型机构通用虚拟化架构
查看>>
继承条款effecitve c++ 条款41-45
查看>>
Java泛型的基本使用
查看>>
1076 Wifi密码 (15 分)
查看>>
noip模拟赛 党
查看>>
bzoj2038 [2009国家集训队]小Z的袜子(hose)
查看>>
Java反射机制及其Class类浅析
查看>>
Postman-----如何导入和导出
查看>>
移动设备显示尺寸大全 CSS3媒体查询
查看>>
图片等比例缩放及图片上下剧中
查看>>
【转载】Linux screen 命令详解
查看>>
background-clip,background-origin
查看>>