博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
基础算法面试题---合并有序链表
阅读量:2499 次
发布时间:2019-05-11

本文共 1399 字,大约阅读时间需要 4 分钟。

将两个升序链表合并为一个新的 升序 链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。

原链表:l1 = [1,2,4],l2 = [1,3,4]

合并后:[1,1,2,3,4,4]

public class Code_04 {
public static void main(String[] args) {
ListNode n = new ListNode(1); ListNode l1 = n; for (int i = 3; i <= 5; i = i + 2) {
n.next = new ListNode(i); n = n.next; } ListNode n2 = new ListNode(2); ListNode l2 = n2; for (int i = 4; i <= 6; i = i + 2) {
n2.next = new ListNode(i); n2 = n2.next; } Code_04 c = new Code_04(); System.out.println("原链表1:" + l1); System.out.println("原链表2:" + l2); System.out.println("合并后:" + c.mergeTwoLists(l1, l2)); } public ListNode mergeTwoLists(ListNode l1, ListNode l2) {
if (l1 == null) {
return l2; } if (l2 == null) {
return l1; } ListNode mergeNode = new ListNode(); ListNode pre = mergeNode; //比较两个链表当前的值,值小的链表就把引用赋给mergeNode,并向后移动一位重新赋值给自己,同时pre指向值小的那个节点 while (l1 != null && l2 != null) {
if (l1.val <= l2.val) {
pre.next = l1; l1 = l1.next; } else {
pre.next = l2; l2 = l2.next; } pre = pre.next; } pre.next = l1 == null ? l2 : l1; return mergeNode.next; }}

转载地址:http://yhlrb.baihongyu.com/

你可能感兴趣的文章
2016年终总结
查看>>
项目Alpha冲刺Day4
查看>>
初始Linux
查看>>
【板+并查集判断连通性】并查集判断连通性
查看>>
C++的ORM工具比较
查看>>
CentOS安装glibc-2.14
查看>>
license文件生成原理
查看>>
static关键字
查看>>
未完成的控件
查看>>
怎么调处vs2010的MSDN帮助文档
查看>>
进程调试--进程启动VS自动附加
查看>>
HTML5学习笔记(五):CSS基础
查看>>
SVN版本回滚
查看>>
PHP程序性能优化的50种方法
查看>>
css3 动画的播放、暂停和重新开始
查看>>
IOS 上传ipa文件失败
查看>>
eclipse Android 开发基础 Activity 窗体 界面
查看>>
怎样玩转千万级别的数据
查看>>
input输入框修改后自动跳到最后一个字符
查看>>
Windows与Linux之间海量文件的传输与Linux下大小写敏感问题
查看>>