博客
关于我
牛客网算法——名企高频面试题143题(13)
阅读量:400 次
发布时间:2019-03-04

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

????

?????????????????????????????????????????????????????????????

???????

??

?????????????????????????????

  • ????????pre?curr??????????????????
  • ??????????????????
  • ?????????????????pre???????
  • ??pre?curr??????????????????
  • ???????pre????????????
  • ???????????O(n)???????O(1)???????????????

    ????

    public class ????II {
    public class ListNode {
    int val;
    ListNode next;
    public ListNode(int val) {
    this.val = val;
    }
    }
    public ListNode rever(ListNode head) {
    if (head == null) {
    return null;
    }
    ListNode pre = null;
    ListNode curr = head;
    while (curr != null) {
    ListNode future = curr.next;
    curr.next = pre;
    pre = curr;
    curr = future;
    }
    return pre;
    }
    public static void main(String[] args) {
    // ????
    ListNode s1 = new ListNode(1);
    ListNode s2 = new ListNode(2);
    ListNode s3 = new ListNode(3);
    ListNode s4 = new ListNode(4);
    s1.next = s2;
    s2.next = s3;
    s3.next = s4;
    ListNode res = rever(s1);
    while (res != null) {
    System.out.println(res.val);
    res = res.next;
    }
    }
    }

    ??????????

    ????????????????????????????????????????????

  • ????dummy??????????????
  • ???????????dummy?????????
  • ????????pre?curr?????dummy?????????
  • ????????????????????
  • ?????????dummy????????????????????
  • ????????O(n)???????O(1)???????

    ????

    public class ????II {
    public class ListNode {
    int val;
    ListNode next;
    public ListNode(int val) {
    this.val = val;
    }
    }
    public ListNode rever1(ListNode head) {
    if (head == null) {
    return null;
    }
    ListNode dumy = new ListNode(0);
    dumy.next = head;
    ListNode pre = dumy;
    ListNode curr = head;
    while (curr.next != null) {
    ListNode future = curr.next;
    curr.next = future.next;
    future.next = dumy.next;
    pre.next = future;
    }
    return dumy.next;
    }
    public static void main(String[] args) {
    // ????
    ListNode s1 = new ListNode(1);
    ListNode s2 = new ListNode(2);
    ListNode s3 = new ListNode(3);
    ListNode s4 = new ListNode(4);
    s1.next = s2;
    s2.next = s3;
    s3.next = s4;
    ListNode res = rever1(s1);
    while (res != null) {
    System.out.println(res.val);
    res = res.next;
    }
    }
    }

    ????

    ???????1?2?3?4???????4?3?2?1?????????????????

    4
    3
    2
    1

    ??

    ???????????????????????????????????????????????????????????????????????????????

    转载地址:http://wqch.baihongyu.com/

    你可能感兴趣的文章
    Netwox网络工具使用详解
    查看>>
    Net与Flex入门
    查看>>
    net包之IPConn
    查看>>
    Net操作配置文件(Web.config|App.config)通用类
    查看>>
    Neutron系列 : Neutron OVS OpenFlow 流表 和 L2 Population(7)
    查看>>
    New Relic——手机应用app开发达人的福利立即就到啦!
    查看>>
    NFinal学习笔记 02—NFinalBuild
    查看>>
    NFS
    查看>>
    NFS Server及Client配置与挂载详解
    查看>>
    NFS共享文件系统搭建
    查看>>
    nfs复习
    查看>>
    NFS安装配置
    查看>>
    NFS的安装以及windows/linux挂载linux网络文件系统NFS
    查看>>
    NFS的常用挂载参数
    查看>>
    NFS网络文件系统
    查看>>
    nft文件传输_利用remoting实现文件传输-.NET教程,远程及网络应用
    查看>>
    NFV商用可行新华三vBRAS方案实践验证
    查看>>
    ng build --aot --prod生成文件报错
    查看>>
    ng 指令的自定义、使用
    查看>>
    nghttp3使用指南
    查看>>