• 反转链表


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

    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;
            }
        }
    }
  • 相关阅读:
    使用Git--将本地项目提交到Github
    海量数据处理面试题
    web前后端安全问题
    mysql关键字如何当字段使用
    一个Java项目开发流程(正规级别)
    开发工具idea中撤回代码和恢复撤销代码快捷键
    layui前端使用
    shiro标签
    常见SVN图标的含义
    最常见到的runtime exception 异常
  • 原文地址:https://www.cnblogs.com/ihaokun/p/11234676.html
Copyright © 2020-2023  润新知