合并两个有序链表

梦里梦外; 2023-06-08 03:19 138阅读 0赞
  1. class Node {
  2. Node next = null;//下一个结点
  3. int data;//结点数据
  4. public Node(int data) {
  5. this.data = data;
  6. }
  7. @Override
  8. public String toString() {
  9. return "Node{" +
  10. "data=" + data +
  11. '}';
  12. }
  13. }
  14. /**
  15. * 合并两个有序链表
  16. * @param head1
  17. * @param head2
  18. * @return
  19. */
  20. public static Node mergeLinkedList(Node head1, Node head2) {
  21. if (head1 == null) return head2;
  22. if (head2 == null) return head1;
  23. Node head = new Node(-1);
  24. Node res = head;
  25. Node cur1 = head1;
  26. Node cur2 = head2;
  27. while (cur1 != null && cur2 != null){
  28. if (cur1.data <= cur2.data){
  29. res.next = cur1;
  30. cur1 = cur1.next;
  31. }else{
  32. res.next = cur2;
  33. cur2 = cur2.next;
  34. }
  35. res = res.next;
  36. }
  37. if (cur1 != null){
  38. res.next = cur1;
  39. }
  40. if (cur2 != null){
  41. res.next = cur2;
  42. }
  43. return head.next;
  44. }

发表评论

表情:
评论列表 (有 0 条评论,138人围观)

还没有评论,来说两句吧...

相关阅读

    相关 合并有序

    合并两个有序链表 1、题目 题目要求:将两个升序链表合并为一个新的升序链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。 示例: 输