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;

    }

  • 相关阅读:
    灰度图转换
    OGRE分析之文件系统 (1)
    屏幕截图
    [GP]template必须定义于头文件中
    OGRE分析之设计模式
    ON_COMMAND_RANGE和ON_UPDATE_COMMAND_UI_RANGE
    使用SkinMagic Toolkit美化界面(II)
    Single Sign On for Windows and Linux
    "C compiler cannot create executables"
    How to Create a First C Program on Linux
  • 原文地址:https://www.cnblogs.com/keedor/p/4356992.html
Copyright © 2011-2022 走看看