ES6 合并有序链表

发布于 2022-03-07 13:07:34 字数 766 浏览 761 评论 0

// 方法一
function mergeTwoLists(l1, l2) {
	var l3 = new ListNode(-1);
	var c3 = l3;

	while (l1 !== null && l2 !== null) {
		if (l1.val <= l2.val) {
			c3.next = l1;
			l1 = l1.next;
		} else {
			c3.next = l2;
			l2 = l2.next;
		}
		c3 = c3.next;
	}
	c3.next = (l1 === null) ? l2 : l1;
	return l3.next;
}

// 自定义一个链表
function ListNode(val) {
	this.val = val;
	this.next = null;
}

// 方法二:递归
function mergeTwoList(l1, l2) {
	if (l1 = null && l2 == null) {
		return null;
	}
	if (l1 == null) {
		return l2;
	}

	if (l2 == null) {
		return l1;
	}

	if (l1.val < l2.val) {
		l1.next = mergeTwoList(l1.next, l2);
		return l1;
	} else {
		l2.next = mergeTwoList(l1, l2.next);
		return l2;
	}
}

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文