代码编织梦想

将两个升序链表合并为一个新的 升序 链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。

示例:

输入:1->2->4, 1->3->4
输出:1->1->2->3->4->4

代码如下

	func mergeTwoLists(_ l1: ListNode?, _ l2: ListNode?) -> ListNode? {
        let dummyHead = ListNode.init(0);
        var cur = dummyHead;
        var newL1 = l1;
        var newL2 = l2;
        while newL1 != nil && newL2 != nil {
            if newL1!.val < newL2!.val {
                cur.next = newL1;
                newL1 = newL1!.next;
            } else {
                cur.next = newL2!;
                newL2 = newL2?.next;
            }
            cur = cur.next!;
        }
        // 任一为空,直接连接另一条链表
        cur.next = newL1 == nil ? newL2 : newL1;
        return dummyHead.next;
    }

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。 本文链接: https://blog.csdn.net/LiqunZhang/article/details/111035785

【力扣15-三数之和】多种解法(hashmap+双指针)(golang)-爱代码爱编程

目录 题目描述思路题解方法1:hash法方法2:双指针法 题目描述 https://leetcode-cn.com/problems/3sum/ 思路题解 方法1:hash法 func threeSum(nums []int) [][]int { mapCount := make(map[int]int, len(nums))

冒泡排序-爱代码爱编程

冒泡排序 基本原理 将待排序列表中两两元素进行比较,若前面元素比后面元素大,则交换位置. 代码 # -*- coding: utf-8 -*- ''' 冒泡排序: 列表中元素两两比较,将较大的放到右边。则比较完一轮以后,最大的放到了最后一位。 ''' def bubble_sort1(input_list): if len(inpu

和你一起刷算法-LeetCode刷题之双指针训练营(七)-爱代码爱编程

第一题快速导航:633. 平方数之和 给定一个非负整数 c ,你要判断是否存在两个整数 a 和 b,使得 a2 + b2 = c 。 示例 1: 输入:c = 5 输出:true 解释:1 * 1 + 2 * 2 = 5 示例 2: 输入:c = 3 输出:false 示例 3: 输入:c = 4 输出

leetcode540 有序数组中的单一元素-爱代码爱编程

题目描述 题目链接 代码 public int singleNonDuplicate(int[] nums) { int left = 0; int right = nums.length - 1; while (left <= right) { int mid =

leetcode:n对括号的组合-爱代码爱编程

Given n pairs of parentheses,write a function to generate are all combinations of well-formed parentheses. Example 1: Input:n=3 Output: ["((()))","(()())","(())()","()(())","()()

leetcode 572. Subtree of Another Tree(判断子树)-爱代码爱编程

Given two non-empty binary trees s and t, check whether tree t has exactly the same structure and node values with a subtree of s. A subtree of s is a tree consists of a node in s

iOS KVO的基本使用-爱代码爱编程

KVO : (Key - Value - Observer) 键值观察者,是观察者设计模式的一种具体实现(C层和M层的通信) KVO触发机制:一个对象(观察者),检测另一个对象(被观察者)的某属性是否发生变化,若被监测的属性发生了更改,会触发观察者的一个方法(方法名固定,类似代理方法) 使用步骤: 注册观察者(为被观察这指定观察者以及被观察者

Flutter之banner实现-爱代码爱编程

 先写一个banner控件 import 'dart:async'; import 'package:flutter/material.dart'; import 'package:transparent_image/transparent_image.dart'; //这个是在网络上找的一个例子,练手 const MAX_COUNT = 0x7

Flutter之编写公共Widget-爱代码爱编程

如上图,做一个抽取 import 'package:flutter/cupertino.dart'; import 'package:flutter/material.dart'; class RowWidget extends Widget{ @override Element createElement() { return

Flutter之listView加载数据 刷新以及加载更多-爱代码爱编程

import 'package:flutter/cupertino.dart'; import 'package:flutter/material.dart'; import 'package:flutter/services.dart'; import 'package:flutter_weight_ui/model/home_article_data

iOS Texture <AsyncDisplayKit> 智能预加载-爱代码爱编程

智能预加载 当一个node能够被异步并发地渲染和测量时,它非常强大,另一个对纹理至关重要的层是智能预加载的思想。 正如在《入门》中指出的那样,在一个node容器的上下文之外使用一个node很少是有利的。这是因为所有node都有其当前接口状态的概念。 此interfaceState属性由所有容器在内部创建和维护的ASRangeController不断更

iOS LeetCode☞括号生成-爱代码爱编程

数字 n 代表生成括号的对数,请你设计一个函数,用于能够生成所有可能的并且 有效的 括号组合。 示例: 输入:n = 3 输出:[ "((()))", "(()())", "(())()", "()(())", "()()()" ] 题解: 为了生成所有序列,我们可以使