leetcode-21-鏈表操作

/** <p>將兩個升序鏈表合併爲一個新的 <strong>升序</strong> 鏈表並返回。新鏈表是通過拼接給定的兩個鏈表的所有節點組成的。 </p> <p> </p> <p><strong>示例 1:</strong></p> <img alt="" src="https://assets.leetcode.com/uploads/2020/10/03/merge_ex1.jpg" style="width: 662px; height: 302px;" /> <pre> <strong>輸入:</strong>l1 = [1,2,4], l2 = [1,3,4] <strong>輸出:</strong>[1,1,2,3,4,4] </pre> <p><strong>示例 2:</strong></p> <pre> <strong>輸入:</strong>l1 = [], l2 = [] <strong>輸出:</strong>[] </pre> <p><strong>示例 3:</strong></p> <pre> <strong>輸入:</strong>l1 = [], l2 = [0] <strong>輸出:</strong>[0] </pre> <p> </p> <p><strong>提示:</strong></p> <ul> <li>兩個鏈表的節點數目範圍是 <code>[0, 50]</code></li> <li><code>-100 <= Node.val <= 100</code></li> <li><code>l1</code> 和 <code>l2</code> 均按 <strong>非遞減順序</strong> 排列</li> </ul> <div><div>Related Topics</div><div><li>遞歸</li><li>鏈表</li></div></div><br><div><li>👍 2323</li><li>👎 0</li></div> */ //leetcode submit region begin(Prohibit modification and deletion) /** * Definition for singly-linked list. * public class ListNode { * int val; * ListNode next; * ListNode() {} * ListNode(int val) { this.val = val; } * ListNode(int val, ListNode next) { this.val = val; this.next = next; } * } */ class Solution { public ListNode mergeTwoLists(ListNode list1, ListNode list2) { ListNode dummy = new ListNode(-1); ListNode p = dummy; while(list1!=null && list2!=null){ if(list1.val<list2.val){ p.next=list1; list1=list1.next; }else{ p.next=list2; list2=list2.next; } p=p.next; } if(list1!=null){ p.next=list1; } if(list2!=null){ p.next=list2; } return dummy.next; } } //leetcode submit region end(Prohibit modification and deletion)
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章