java 合并两个有序单链表
2017-05-23 20:57
459 查看
package datastruct.uselikedlist; /** * 合并两个单链表 * */ class ListNode{ int val ; ListNode next; public ListNode(int x) { this.val=x; } } public class MergeTwoOfLikedList { ListNode head=null; //往ListNode 中添加节点 public void add(int data){ ListNode newNode=new ListNode(data); //添加头结点 if (head==null) { head=newNode; return; } //添加头结点以外的其他结点 ListNode temp=head; while (temp.next!=null) { temp=temp.next; } temp.next=newNode; } //打印结点 public void printNode(ListNode head){ ListNode temp=head; while(temp!=null){ System.out.print(temp.val+" "); temp=temp.next; } } //合并两个链表 public ListNode mergeTwoLists(ListNode l1,ListNode l2) { //如果ListNode l1 中的所有节点都被合并进去,合并l2 if (l1==null) { return l2; } //如果ListNode l2 中的所有节点都被合并进去,合并l1 if (l2==null) { return l1; } ListNode list=null;//用来存放合并的链表 //选择ListNode l1,ListNode l2中较小的结点进行合并 if (l1.val<l2.val) { list=l1; list.next=mergeTwoLists(l1.next, l2); }else { list=l2; list.next=mergeTwoLists(l1, l2.next); } return list; } public static void main(String[] args) { MergeTwoOfLikedList l1=new MergeTwoOfLikedList(); l1.add(1); l1.add(3); l1.add(5); MergeTwoOfLikedList l2=new MergeTwoOfLikedList(); l2.add(2); l2.add(4); l2.add(6); ListNode list=l1.mergeTwoLists(l1.head, l2.head); //打印合并后的list MergeTwoOfLikedList merge=new MergeTwoOfLikedList(); merge.printNode(list); } }
相关文章推荐
- 合并两个有序单链表(Java)
- 两个有序单链表合并成一个有序单链表的java实现
- Java单链表基本操作(八)--合并两个有序单链表
- 两个有序单链表合并成一个有序单链表的java实现
- Java 非递归 和非递归方法 实现两个有序单链表的合并
- 非递减合并两个有序单链表
- 15、合并两个有序数组,不另外开辟空间 JAVA
- 合并两个有序单链表
- 两个有序单链表的合并
- 数据结构——算法之(033)(两个有序单链表合并为一个有序的单链表)
- 合并两个单链表为递减有序的单链表
- 合并两个单链表为递减有序的单链表
- 编程实现合并两个有序单链表
- Java合并两个有序序列算法实现
- 数据结构 — 1. 两个非递减有序单链表合并为非递增有序单链表
- 两个有序单链表合并
- 不开辟新空间,两个有序单链表合并为一个有序单链表
- Java 合并两个有序链表
- java将两个有序数组合并成一个有序数组
- 合并两个有序单链表