简体   繁体   English

合并两个排序的链表java就地

[英]Merge two sorted linked lists java inplace

Could some one give code for merging 2 sorted LLs in place?有人可以提供将 2 个已排序的 LL 合并到位的代码吗?

recursion & also iterative please递归和迭代请

Thanks Dinesh谢谢 Dinesh

public class MergeLinkedLists {

public static Node merge(Node head1, Node head2) {
    Node mergedList = null;
    if(head1 == null) {
        return head2;
    }
    if(head2 == null) {
        return head1;
    }
    if(head1.data < head2.data) {
        //point to smaller element
        mergedList = head1;         
        mergedList.next = merge(head1.next, head2);
    } else { //head1 is large, so pass h
        //point to smaller element
        mergedList = head2;
        //head2 is already consider
        //now process next node of head2
        mergedList.next = merge(head1, head2.next);
    }
    return mergedList;
}

} }

Here is a quick recursive solution in python.这是python中的快速递归解决方案。 The implementation logic should be the same in Java Java中的实现逻辑应该是一样的

def mergeLists(head1, head2):
  if not head1:
      return head2

  if not head2:
      return head1

  if head1.data <= head2.data:
      res = head1
      res.next = mergeLists(head1.next, head2)
  else:
      res = head2
      res.next = mergeLists(head1, head2.next)

  return res

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM