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

    一道简单的题目,下面直接贴代码,思路在注释中

    import java.util.ArrayList;
    import java.util.List;
    
    /**
     * 反转链表
     * 输入一个链表,反转链表后,输出新链表的表头
     *
     * 解题思路:
     * 遍历两次,使用数组。第一次遍历所有,并按顺序全部放入数组中;
     * 第二次遍历,实现反转链表
     *
     * 要注意的地方:
     * 当head为null时,可能存在数组下标的问题,要注意以下第二次遍历的反转过程
     *
     * @author ihaokun
     * @date 2019/7/23 21:10
     */
    public class ReverseLinkedList {
        public static void main(String[] args) {
            /*ListNode head = new ListNode(1);
            head.next = new ListNode(2);
            head.next.next = new ListNode(3);*/
            ListNode head = null;
           head = reverse(head);
            while (head != null) {
                System.out.println(head.val);
                head = head.next;
            }
        }
    
        public static ListNode reverse(ListNode head) {
            List<ListNode> array = new ArrayList<>();
            while (head != null) {
                array.add(head);
                head = head.next;
            }
            if (array.size() > 0) {
                for (int i = array.size() - 1; i > 0; i--) {
                    array.get(i).next = array.get(i - 1);
                }
                array.get(0).next = null;
                return array.get(array.size() - 1);
            }
            return null;
        }
    
        static class ListNode {
            int val;
            ListNode next = null;
    
            ListNode(int val) {
                this.val = val;
            }
        }
    }
  • 相关阅读:
    设计模式学习笔记之命令模式
    JavaEE复习三
    ubuntu下安装UltraEdit
    转载:Ubuntu下deb包的安装方法
    查看linux系统版本是32位还是64位
    手动编译生成apk
    android service文章转载
    @+android:id的一些记录
    android Tweened Animations
    ubuntu下打开chm文件
  • 原文地址:https://www.cnblogs.com/ihaokun/p/11234676.html
Copyright © 2011-2022 走看看