java实现合并两个已经排序的列表
2024-08-27 03:36:44
相对于C++来说,Java的最大特点之一就是没有令人困惑的指针,但是我们不可否认,在某些特定的情境下,指针确实算的上一把利刃。虽然Java中没有明确定义出指针,但是由于类的思想,我们可以使用class来实现指针的操作。小二,上栗子-----合并两个已经排序的列表,输出合并后列表的头结点,且合并后的列表中的元素是有序的。
需要时刻铭记于心的:在Java中,列表的一个节点其实就是某个类实例化的一个对象。
示例代码如下:
package DecemberOf2013; class ListNode{
int val;
ListNode next;
public ListNode(int val) {
this.val = val;
this.next = null;
}
} public class MergeTowSortedLists { public ListNode mergeLists(ListNode l1, ListNode l2){ ListNode p1 = l1;
ListNode p2 = l2; ListNode fadeHead = new ListNode(0);
ListNode pHead = fadeHead; while(p1 != null && p2 != null){
if(p1.val <= p2.val){
pHead.next = p1;
p1 = p1.next;
}
else{
pHead.next = p2;
p2 = p2.next;
}
pHead = pHead.next;
} if(p1 != null){
pHead.next = p1;
}
else{
pHead.next = p2;
} return fadeHead.next;
}
}
由于Java中的内存回收机制,是否可以保证不会出现C++或者C语言中的野指针或者内存泄露问题呢?等待大牛的详解。
最新文章
- Android笔记——关于Cursor类的介绍
- Euler Level 2
- 让复杂Json数据和对象自由转换 --- Gson
- iOS UIDatePicker frame改变问题
- canvas API ,通俗的canvas基础知识(三)
- Mac快捷键 Xcode快捷键
- /cdrom /media /mnt
- 常用的mysql操作命令
- centos6.5安装mongodb
- DTCMS展示一级栏目并展示各自栏目下的二级栏目
- Bootstrap 分页功能
- c++ timer基于win消息队列
- onblur判断数字
- 递归——CPS(三)
- U盘制作centos7系统并安装
- 关于Cesium中的常用坐标系及说明
- [LVM]创建LVM卷
- vue项目eslint环境配置与vscode配置eslint
- SQL---->;mySQl数据库1------表的增删改查
- 2019.04.19 读书笔记 比较File.OpenRead()和File.ReadAllBytes()的差异