zoukankan      html  css  js  c++  java
  • 合并两个排序的链表

    题目描述
    输入两个单调递增的链表,输出两个链表合成后的链表,当然我们需要合成后的链表满足单调不减规则。

    方法一(递归)
    合并过程中,首先比较两个链表的首节点哪个小,较小的节点作为合成链表的首节点,之后将指针指向较小节点的后一个节点,再次进行上面逻辑的比较,可以发现比较过程是一个递归的操作。

        public ListNode Merge(ListNode list1,ListNode list2) {
        	
        	if(list2 == null) {
        		return list1;
        	}
        	else if(list1 == null) {
        		return list2;
        	}
        	
        	ListNode listAll = null;
        	
        	if(list1.val < list2.val) {
        		listAll = list1;
        		listAll.next = Merge(list1.next, list2);
        	}
        	else {
        		listAll = list2;
        		listAll.next = Merge(list1, list2.next);
        	}
    
        	return listAll;
        	
        }
    

    通过递归到最大的节点,并进行返回递归操作到上一次递归的空间,将返回节点作为当前次大节点的下一个节点,这样从后到前返回到第一个节点的空间,递归操作完成。

    方法二(非递归)

        public ListNode Merge_2(ListNode list1,ListNode list2) {
        	if(list2 == null) {
        		return list1;
        	}
        	else if(list1 == null) {
        		return list2;
        	}
        	
        	ListNode mergeHead = new ListNode(0);
        	ListNode current = mergeHead;
        	
        	while(list1 != null && list2 != null) {
        		if(list1.val < list2.val) {
        			current.next = list1;
        			list1 = list1.next;
        		}
        		else {
        			current.next = list2;
        			list2 = list2.next;
        		}
        		
        		current = current.next;
        	}
        	
        	if(list1 == null) {
        		current.next = 	list2;
        	}
        	
        	if(list2 == null) {
        		current.next = list1;
        	}
        	
        	return mergeHead.next;
    
        }
    

    注意声明mergeHead来作为合成链表的头结点,声明current来作为一个当前合成链表最后一个节点的指针,初始化指向头结点,之后比较两个链表对应元素大小,并修改两个两个链表和current的指针指向。

  • 相关阅读:
    jquery下拉菜单打开的同时,同行右边的图标变化
    echarts引入及应用
    好用又美观的时间控件
    C#不支持此安全协议
    python re模块中的函数
    python中的收集参数
    python常用操作符
    python 字符串中常用的内置函数
    VS2012停止工作解决办法
    Jqurey图片放大镜插件
  • 原文地址:https://www.cnblogs.com/lishanlei/p/10707734.html
Copyright © 2011-2022 走看看