难易度:简单
将两个升序链表合并为一个新的 升序 链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。
示例:
输入:1->2->4, 1->3->4
输出:1->1->2->3->4->4
来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/merge-two-sorted-lists
/**
* @Description: TODO
* @Author YunShuaiWei
* @Date 2020/7/5 19:43
* @Version
**/
public class Solution {
private ListNode res = null;
private ListNode cur = res;
public ListNode mergeTwoLists(ListNode l1, ListNode l2) {
if (l1 == null) {
return l2;
}
if (l2 == null) {
return l1;
}
//利用两个临时变量node1和node2来遍历链表
ListNode node1 = l1;
ListNode node2 = l2;
while (node1 != null && node2 != null) {
//l1中val<l2中的val
if (node1.val < node2.val) {
//创建新的节点,并链接到res的next域
if (res == null) {
res = new ListNode(node1.val);
cur = res;
} else {
cur.next = new ListNode(node1.val);
cur = cur.next;
}
node1 = node1.next;
} else {
if (res == null) {
res = new ListNode(node2.val);
cur = res;
} else {
cur.next = new ListNode(node2.val);
cur = cur.next;
}
node2 = node2.next;
}
}
if (node1 == null) {
cur.next = node2;
} else {
cur.next = node1;
}
return res;
}
}
class ListNode {
int val;
ListNode next;
ListNode() {
}
ListNode(int val) {
this.val = val;
}
ListNode(int val, ListNode next) {
this.val = val;
this.next = next;
}
}
本文地址:https://blog.csdn.net/qq_40613029/article/details/107144680
如对本文有疑问, 点击进行留言回复!!
Android 4.0使用Kotlin调用C语言以及汇编语言
Java Class.forName()用法和newInstance()方法原理解析
网友评论