标签:学习 商业 break get bin || problems com 操作
输入两个递增排序的链表,合并这两个链表并使新链表中的节点仍然是递增排序的。
示例1:
输入:1->2->4, 1->3->4
输出:1->1->2->3->4->4
来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/he-bing-liang-ge-pai-xu-de-lian-biao-lcof
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。
首先注意链表和数组的区别,在对数组操作时,如果不想再原本的数组上操作,则必须new一个新的数组空间。而链表则只需要增加增加一个head就可以了。
本题的解决思路如下;
在原始的链表上操作容易混乱,所以最好新建一个newHead节点,用来将节点移到这里容易表示。
class Solution { public ListNode mergeTwoLists(ListNode l1, ListNode l2) { ListNode curL1Node = l1; ListNode curL2Node = l2; ListNode newHead = new ListNode(0); ListNode curNewNode = newHead; while (true) { //l1或l2遍历完后,则结束。 if (curL1Node == null || curL2Node == null) { break; } else { //curL1Node.val和curL2Node.val //则较小节点放在newHead后。 if (curL1Node.val <= curL2Node.val) { curNewNode.next = curL1Node; //较小节点后移 curL1Node = curL1Node.next; } else { curNewNode.next = curL2Node; //较小节点后移 curL2Node = curL2Node.next; } //newHead节点后移 curNewNode = curNewNode.next; } } //一旦退出循环,则意味着有链表已经为null, // 将不为null都移到newHead后面 if(curL1Node!=null){ curNewNode.next = curL1Node; } if(curL2Node!=null){ curNewNode.next = curL2Node; } return newHead.next; } }
标签:学习 商业 break get bin || problems com 操作
原文地址:https://www.cnblogs.com/dazhu123/p/12502998.html