zoukankan      html  css  js  c++  java
  • 反转链表 16

    总结

       

    定义三个类似指针的引用,一个指向当前节点,一个指向前一个节点,初始化为null,一个指向后一个节点

       

    判定反转链表的头节点的依据是当前节点的下一个节点为null

       

    反转过程,就是将前一个节点作为当前节点的下一个节点,将当前节点作为前一个节点,最后将下一个节点作为当前节点,实现链表的遍历继续进行下去

       

    package reverseList16;

       

    public class ReverseList16 {

       

    public static void main(String[] args) {

    // TODO Auto-generated method stub

    ListNode headNode=new ListNode();

    headNode.data=1;

    ListNode l1=new ListNode();

    l1.data=2;

    ListNode l2=new ListNode();

    l2.data=3;

    headNode.nextNode=l1;

    l1.nextNode=l2;

    l2.nextNode=null;

    printList(headNode);

    ListNode resultNode=reverseList(headNode);

    printList(resultNode);

    }

    static void printList(ListNode headNode){

    System.out.print(headNode.data+"-->");

    while (headNode.nextNode!=null) {

    headNode=headNode.nextNode;

    if (headNode.nextNode==null) {

    System.out.println(headNode.data);

    }else {

       

    System.out.print(headNode.data+"-->");

    }

    }

       

    }

    static ListNode reverseList(ListNode head){

    if (head==null) {

    return null;

    }

    ListNode preNode=null;

    ListNode nowNode=head;

    ListNode resultNode =null;

    while (nowNode!=null) {

    ListNode nextNode=nowNode.nextNode;

    if (nextNode==null) {

    resultNode=nowNode;

    }

    nowNode.nextNode=preNode;

    preNode=nowNode;

    nowNode=nextNode;

    }

    return resultNode;

       

    }

    }

    class ListNode{

    int data;

    ListNode nextNode;

    }

  • 相关阅读:
    Mysql添加用户和数据库
    Ubuntu Apache vhost不执行php小记
    buff/cache内存占用过多
    yii2 返回json和文件下载
    yii2 activeform 替換 form-gruop
    VSCode+Ionic+Apache Ripple开发环境搭建
    安装ionic出现node-sass无法下载的解决方法
    VS2015 + Cordova Html5开发使用Crosswalk Web引擎
    visual studio 2015 + Cordova 开发环境搭建
    ADSL自动更换IP地址源代码
  • 原文地址:https://www.cnblogs.com/keedor/p/4356992.html
Copyright © 2011-2022 走看看