• 剑指Offer——反转链表


    1、题目描述

      输入一个链表,反转链表后,输出新链表的表头。

    2、代码实现

    package com.baozi.offer;
    
    /**
     * 输入一个链表,反转链表后,输出新链表的表头。
     *
     * @author BaoZi
     * @create 2019-07-11-15:53
     */
    public class Offer12 {
        public static void main(String[] args) {
            Offer12 offer12 = new Offer12();
            ListNode l1 = new ListNode(1);
            ListNode l2 = new ListNode(2);
            ListNode l3 = new ListNode(3);
            ListNode l4 = new ListNode(4);
            ListNode l5 = new ListNode(5);
            ListNode l6 = new ListNode(6);
            l1.next = l2;
            l2.next = l3;
            l3.next = l4;
            l4.next = l5;
            l5.next = l6;
            l6.next = null;
            ListNode result = offer12.ReverseList(l1);
            ListNode temp = result;
            while (temp != null) {
                System.out.println(temp.val);
                temp = temp.next;
            }
        }
    
        //根据gang'hao'xiang'f题目的要求是要实现一个链表的反转,那么我们可以重新创建一个新的链表,只是这个新链表创建的
        //过程使用的是头插法,这样新的链表的元素顺序就和原来链表的顺序刚好相反
        public ListNode ReverseList(ListNode head) {
            if (head == null) {
                return null;
            }
            ListNode newHead = new ListNode(-1);
            ListNode temp1 = head;
            while (temp1 != null) {
                //先把原来链表的当前节点的next保存起来便于下一次循环的时候使用
                ListNode t = temp1.next;
                //下边这两行代码就是使用的头插法创建单链表(先指定空指针的指向,在修改非空指针的指向)
                temp1.next = newHead.next;
                newHead.next = temp1;
                temp1 = t;
            }
            //因为我们创建的新链表的头节点只是为了便于操作,所以实际返回的时候要把这个头节点去掉
            return newHead.next;
        }
    }
    

      

  • 相关阅读:
    hibernate对应的annocation版本
    Struts 2 OGNL
    Struts2的Stack Context和ValueStack
    Struts2中的OGNL详解
    struts2中根对象以及ognl .
    在Struts 2中实现IoC
    Struts2的属性驱动与模型驱动的区别
    Struts2的模型驱动
    Java中线程的锁和数据库中的事务隔离级别
    为什么socket编程要用到多线程
  • 原文地址:https://www.cnblogs.com/BaoZiY/p/11170661.html
Copyright © 2020-2023  润新知