zoukankan      html  css  js  c++  java
  • Lc21_合并两个有序链表

    package homework;
    
    import homework.Lc19.ListNode;
    
    /**
     * 21. 合并两个有序链表 将两个有序链表合并为一个新的有序链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。
     * 
     * 示例:
     * 
     * 输入:1->2->4, 1->3->4 输出:1->1->2->3->4->4
     *
     */
    public class Lc21 {
        public static class ListNode {
            int val;
            ListNode next;
    
            ListNode(int x) {
                val = x;
            }
        }
    
        public static ListNode mergeTwoLists(ListNode l1, ListNode l2) {
            ListNode prehead = new ListNode(-1);
    
            ListNode prev = prehead;
            while (l1 != null && l2 != null) {
                if (l1.val <= l2.val) {
                    prev.next = l1;
                    l1 = l1.next;
                } else {
                    prev.next = l2;
                    l2 = l2.next;
                }
                prev = prev.next;
            }
    
            // exactly one of l1 and l2 can be non-null at this point, so connect
            // the non-null list to the end of the merged list.
            prev.next = l1 == null ? l2 : l1;
    
            return prehead.next;
        }
    
        public static void main(String[] args) {
            ListNode l1 = new ListNode(1);
            ListNode l2 = new ListNode(2);
            l1.next = l2;
            ListNode l3 = new ListNode(1);
            ListNode l4 = new ListNode(2);
            l3.next = l4;
            mergeTwoLists(l1, l3);
        }
    }
  • 相关阅读:
    java web使用WebSocket
    solr的使用
    mybatis中模糊查询的实现方式
    Java反射的简单使用
    TCP/IP协议 资料整理
    Java单向链表的实现
    Spring boot使用JWT来做接口登录验证
    sql性能优化
    前端实践项目(四)使用koa搭建开发环境
    前端实践项目 目录
  • 原文地址:https://www.cnblogs.com/xiaoshahai/p/12381741.html
Copyright © 2011-2022 走看看