zoukankan      html  css  js  c++  java
  • 剑指offer系列13---反转链表并输出头结点

    【题目】输入一个链表,反转链表后,输出链表的所有元素。

    【思路】将当前指针指向前者即为反转,反转是同时反转指针和赋值操作。即将指针指向前者并给前者赋值。反转后的头结点就是原链表的尾 结点。代码如下:

     1 package com.exe3.offer;
     2 /**
     3  * 13【题目】输入一个链表,反转链表后,输出链表的所有元素。
     4  * @author WGS
     5  *
     6  */
     7 public class ReverseLinkList {
     8     public static class LinkNode{
     9         int val;
    10         LinkNode next=null;
    11         public LinkNode(int n){
    12             this.val=n;
    13         }
    14     }
    15     
    16     public LinkNode getReverseLink(LinkNode headnode){
    17         LinkNode preNode=null;//当前结点的前一个结点
    18         LinkNode curNode=headnode;//当前结点
    19         LinkNode reverseHeadNode=null;//反转后的头结点,即原链表的尾结点。
    20         
    21         while(curNode!=null){
    22             LinkNode nextNode=curNode.next;
    23             if(nextNode==null)
    24                 reverseHeadNode=curNode;
    25             //反转是将指针指向前者,值也同时赋给前者
    26             curNode.next=preNode;//指针反向
    27             preNode=curNode;//同时赋值
    28             curNode=nextNode;
    29             
    30         }
    31         return reverseHeadNode;
    32     }
    33     
    34     public static void main(String[] args){
    35         ReverseLinkList r=new ReverseLinkList();
    36         LinkNode node1=new LinkNode(1);
    37         LinkNode node2=new LinkNode(2);
    38         LinkNode node3=new LinkNode(3);
    39         LinkNode node4=new LinkNode(4);
    40         LinkNode node5=new LinkNode(5);
    41         node1.next=node2;
    42         node2.next=node3;
    43         node3.next=node4;
    44         node4.next=node5;
    45         LinkNode node=r.getReverseLink(node1);
    46         System.out.println("头结点是"+node.val);
    47         while(node!=null){
    48             System.out.println(node.val);
    49             node=node.next;
    50         }
    51     }
    52     
    53     
    54 }
  • 相关阅读:
    Haskell Types与Typeclasses
    Haskell Tuple相关总结
    Haskell List相关操作
    Emacs 常用快捷键
    Emacs 参考资料
    Haskell Platform (windows)
    生成zip压缩包
    递归复制一个文件
    写表格
    读表格
  • 原文地址:https://www.cnblogs.com/noaman/p/5412146.html
Copyright © 2011-2022 走看看