• 反转链表


     1 package com.algorithm;
     2 
     3 //输入一个链表,反转链表后,输出链表的所有元素。
     4 public class ReverseListMe {
     5     
     6     public ListNode ReverseList(ListNode head) {
     7         //运行时间:36ms 占用内存:528k
     8         if(head == null) {
     9             return head;
    10         }
    11         if(head.next == null) {
    12             System.out.println(head.val);
    13             return head;
    14         }
    15          ListNode front = head;//前一个
    16          ListNode back = head.next;//后一个
    17          ListNode guard = back.next;//第三个
    18          front.next = null;//将最后一个赋值为null
    19          while(back != null) {
    20              back.next = front;//把第二项的next 赋值为front
    21              front = back;
    22              back = guard;//将guard 赋值给front
    23              if(guard != null)
    24               guard = guard.next;//将guade的next赋值给guard
    25          }
    26          head = front;
    27          while(front != null) {
    28              System.out.println(front.val);
    29              front = front.next;
    30          }
    31          return head;
    32     }
    33     public static void main(String[] args) {
    34          ListNode la = new ListNode(1);
    35           ListNode lb = new ListNode(2);
    36           ListNode lc = new ListNode(3);
    37           la.next = lb;
    38           lb.next = lc;
    39           lc.next = null;
    40           new ReverseListMe().ReverseList(la);
    41     }
    42     /*class ListNode {
    43         int val;
    44         ListNode next = null;
    45         ListNode(int val) {
    46             this.val = val;
    47         }
    48     }*/
    49 }
    1 ListNode pre = null;   
    2 ListNode next = null;    
    3 while (head != null) {        
    4     next = head.next;        
    5     head.next = pre;        
    6     pre = head;        
    7     head = next;    
    8 }    
    9     return pre;
  • 相关阅读:
    30分钟速懂Java8新特性!
    学习数据结构和算法心得
    看似简单但容易忽视的编程常识
    你应该关注的几个Eclipse超酷插件
    无谓的通宵加班之后的思索
    比特币这么火热,看看这篇比特币初学者指南
    2017年最受欢迎的十大开源黑客工具
    15分钟破解网站验证码
    我的新博客:www.wangyufeng.org
    20 岁时候的你在想些什么?
  • 原文地址:https://www.cnblogs.com/fankongkong/p/6517989.html
Copyright © 2020-2023  润新知