[LC]21题 Merge Two Sorted Lists (合并两个有序链表)(链表)
时间:2019-09-27
本文章向大家介绍[LC]21题 Merge Two Sorted Lists (合并两个有序链表)(链表),主要包括[LC]21题 Merge Two Sorted Lists (合并两个有序链表)(链表)使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
①英文题目
Merge two sorted linked lists and return it as a new list. The new list should be made by splicing together the nodes of the first two lists.
Example:
Input: 1->2->4, 1->3->4 Output: 1->1->2->3->4->4
②中文题目
将两个有序链表合并为一个新的有序链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。
示例:
输入:1->2->4, 1->3->4
输出:1->1->2->3->4->4
③思路
就是判断大小,注意,比着比着,l1或者l2就会空掉,然后导致空指针的问题,进而报错。
④代码
1 class Solution { 2 public ListNode mergeTwoLists(ListNode l1, ListNode l2) { 3 ListNode zf=null; 4 // ListNode curr=zf; 5 ListNode temp1=l1; 6 ListNode temp2=l2; 7 if(temp1==null&&temp2!=null){ 8 zf=temp2; 9 temp2=temp2.next; 10 } 11 if(temp1!=null&&temp2==null){ 12 zf=temp1; 13 temp1=temp1.next; 14 } 15 if(temp1!=null&&temp2!=null){ 16 if(temp1.val<temp2.val){ 17 zf=temp1; 18 temp1=temp1.next; 19 } 20 else{ 21 zf=temp2; 22 temp2=temp2.next; 23 } 24 } //到此,zf是最小的结点,也是头部。 25 ListNode curr=zf; 26 while(temp1!=null||temp2!=null){ 27 if(temp1==null&&temp2!=null){ 28 curr.next=temp2; 29 temp2=temp2.next; 30 curr=curr.next; 31 } 32 if(temp2==null&&temp1!=null){ 33 curr.next=temp1; 34 temp1=temp1.next; 35 curr=curr.next; 36 } 37 if(temp1!=null&&temp2!=null&&temp1.val<temp2.val){ 38 curr.next=temp1; 39 temp1=temp1.next; 40 curr=curr.next; 41 } 42 if(temp1!=null&&temp2!=null&&temp1.val>=temp2.val){ 43 curr.next=temp2; 44 temp2=temp2.next; 45 curr=curr.next; 46 } 47 } 48 return zf; 49 } 50 }
⑤学到的知识
1、如果超时,那去考虑是不是while()的括号里写的表达式,一直跳不出while循环。
2、DriverSolution__.__helper__这种报错,是空指针。一般就是某个链表已经到链尾了,代码还在找它的next,从而导致空指针。
原文地址:https://www.cnblogs.com/zf007/p/11595452.html
- 鱼与熊掌兼得,既要云服务创新也要管理传统网络
- Django-model进阶(中介模型,查询优化,extra,整体插入)
- flask-session组件
- day10、nfs+rsync全网备份及实时同步
- Flask-信号(blinker)
- Python中的单例模式的几种实现方式的及优化
- 程序员学习python必备的4大网站,你用过几个?
- 知面不知心?AI帮你看懂对方的“小心思”
- 数据库连接池,本地线程,上下文管理
- 2018年微信小程序风口趋势预测
- 小程序走在取代APP路上
- 重磅!小程序社交立减金全面开放,快来领攻略
- VR/AR未来何去何从?
- 使用Python+Tensorflow的CNN技术快速识别验证码
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- 安装CDH7.1.1
- GIT-SHELL 沙盒绕过(CVE-2017-8386)
- Azkaban-2.5.0-部署与常见案例
- 无字母数字webshell之提高篇
- Sqoop-1.4.7-部署与常见案例
- Hbase-2.0.0_01_安装部署
- 前端黑魔法之远程控制地址栏
- 攻击LNMP架构Web应用的几个小Tricks
- Hbase-2.0.0_02_常用操作
- phpjiami 数种解密方法
- Hbase-2.0.0_03_Hbase数据模型
- ELK-elasticsearch-6.3.2部署
- Real World CTF 2018 bookhub 总结
- python http.server open redirect vulnerability
- ELK-elasticsearch-6.3.2插件【head,bigdesk,cerebro[kopf]】安装