我命由我,不由天!


  • 搜索
prometheus docker golang linux kubernetes

leecode-21合并两个有序链表

发表于 2020-11-17 | 0 | 阅读次数 229

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

示例:

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

思路:

  1. 定义一个头节点
  2. 另个指针根据两个链表Val的大小判断决定,条件为两个链表当前都不为nil
  3. 最后遍历完时,其中一个链表不为空需要添加到新链表之后

注意:

  • 赋值是从head的next开始,最后返回也是head.Next
  • 中间变量temp = temp.Next 为链表的移动

代码实现

type ListNode struct {
	Val  int
	Next *ListNode
}

func mergeTwoLists(l1 *ListNode, l2 *ListNode) *ListNode {
	newList := &ListNode{}
	temp := newList
	for l1 != nil && l2 != nil {
		if l1.Val < l2.Val {
			temp.Next = l1
			l1 = l1.Next
		} else {
			temp.Next = l2
			l2 = l2.Next
		}
		temp = temp.Next
	}
	if l1 == nil {
		temp.Next = l2
	} else {
		temp.Next = l1
	}
	return newList.Next
}
  • 本文作者: Dante
  • 本文链接: https://gaodongfei.com/archives/leecode-21-mergetwolists
  • 版权声明: 本博客所有文章除特别声明外,均采用CC BY-NC-SA 3.0 许可协议。转载请注明出处!
Kafka
leetcode-234-回文链表
  • 文章目录
  • 站点概览
Dante

Dante

119 日志
5 分类
5 标签
RSS
Creative Commons
0%
© 2023 Dante
由 Halo 强力驱动
|
主题 - NexT.Pisces v5.1.4
沪ICP备2020033702号