题目要求:给定两个有序链表的头指针node1和node2,打印两个链表的公共部分。
思路:比较简单,用两个指针从头节点开始遍历,比较两个节点的值,有三种情况
1.如果node1的指针指向的值大于node2的指针指向的值值,将node2的指针指向后一个节点。
2.如果node1的指针指向的值小于node2的指针指向的值值,将node1的指针指向后一个节点。
3.如果node1的指针指向的值等于node2的指针指向的值值,打印节点的值,将node2的指针和node1的指针都指向后一个节点。

该过程在while循环中执行,当两个指针有一个指向空,则退出该while循环

主体代码:

public static void commonPart(LinkNode node1,LinkNode node2){if (node1==null || node2 == null)return;while (node1 != null && node2 != null){if (node1.value > node2.value){node2 = node2.next;}else  if (node1.value < node2.value){node1 = node1.next;}else {System.out.println(node1.value);node1 = node1.next;node2 = node2.next;}}}

测试代码:

package com.leetCode;import com.utils.LinkNode;/*** @Author Rabindranath Tagore  515783116@qq.com* @Date 2021/8/27 22:22*/
public class LinkNodeCommonPart {public static void main(String[] args) {LinkNode node1 = new LinkNode(1);node1.next = new LinkNode(2);node1.next.next = new LinkNode(5);LinkNode node2 = new LinkNode(0);node2.next = new LinkNode(2);node2.next.next = new LinkNode(3);node2.next.next.next = new LinkNode(5);commonPart(node1,node2);}public static void commonPart(LinkNode node1,LinkNode node2){if (node1==null || node2 == null)return;while (node1 != null && node2 != null){if (node1.value > node2.value){node2 = node2.next;}else  if (node1.value < node2.value){node1 = node1.next;}else {System.out.println(node1.value);node1 = node1.next;node2 = node2.next;}}}
}

算法-打印两个有序链表的公共部分相关推荐

  1. 算法练习day9——190327(“之” 字形打印矩阵、在行列都排好序的矩阵中找数、打印两个有序链表的公共部分、判断一个链表是否为回文结构)

    1."之" 字形打印矩阵 [题目] 给定一个矩阵matrix, 按照"之" 字形的方式打印这个矩阵, 例如: 1 2 3 4 5 6 7 8 9 10 11 1 ...

  2. 链表之打印两个有序链表的公共部分

    题目:打印两个有序链表的公共部分 package com.chenyu.zuo.linkedList; /*** 打印有序链表的公共部分* @author 陈喻*题目:给定两个有序链表的头指针head ...

  3. 链表问题1——打印两个有序链表的公共部分

    题目 给定两个有序链表的头指针head1和head2,打印两个链表的公共部分. 思路 因为是有序链表假设从小到大,所以从两个链表的头开始进行如下判断: 如果head1的值小于head2,则head1往 ...

  4. 打印两个有序链表的公共部分

    [题目] 给定两个有序链表的头指针head1和head2,打印两个 链表的公共部分 思路:因为是有序链表,所以从两个链表的头开始进行如下判断: 如果head1的值小于head2 ,则head1 往下移 ...

  5. 打印两个有序链表的公共部分~~

    类似与归并排序,这里就不再赘述了~

  6. 数据结构与算法之打印两个有序链表公共部分和判断一个链表是否具有回文结构

    数据结构与算法之打印两个有序链表公共部分和判断一个链表是否具有回文结构 目录 打印两个有序链表公共部分 判断一个链表是否具有回文结构 1. 打印两个有序链表公共部分 1.问题描述 思路:Node1和N ...

  7. Coding Interview Guide--打印两个有序链表的公共部分

    [题目] 给定两个有序链表的头指针head1和head2,打印两个链表的公共部分. [分析] 链表可能为空也可能非空,而对于空链表程序不需要进行任何操作:若是非空链表,因为链表有序,所以要么是递增,要 ...

  8. 两个list关联合并_算法分享---两个有序链表的合并(C语言)

    定义两个指针,分别指向两个链表的头结点,在两个链表都不为空时, 比较两个链表结点的值的大小. 若链表l1的节点大于l2的节点,则将l1的节点值赋值给l3.l1的指针指向下一个节点. 反之,则则将l2的 ...

  9. [PHP] 算法-合并两个有序链表为一个有序链表的PHP实现

    合并两个有序的链表为一个有序的链表: 类似归并排序中合并两个数组的部分 1.遍历链表1和链表2,比较链表1和2中的元素大小 2.如果链表1结点大于链表2的结点,该结点放入第三方链表 3.链表1往下走一 ...

最新文章

  1. [转]如果我有jQuery背景,我应该如何切换到AngularJS的思维模式?
  2. JS(JavaScript)的深入了解1(更新中···)
  3. linux性能分析常用的命令
  4. setitimer()函数
  5. Linux内存管理 brk(),mmap()系统调用源码分析1:基础部分
  6. 推荐-最新PSP游戏下载,不用注册直接下载!(1)
  7. 香港房地产业发展历程、现状、问题及对策探究
  8. # gazebo 仿真
  9. Laravel模型中的fillable和guarded属性
  10. 数字化转型的本质(10个关键词)
  11. Vue - 判断终端是否为:IE内核、opera内核、苹果、谷歌内核、火狐内核、是否为移动终端、ios终端、android终端、是否为iPhone或者QQHD浏览器、是否iPad、是否微信、是否QQ
  12. LeetCode-1276. 不浪费原料的汉堡制作方案
  13. [RFC6023] 互联网密钥交换版本 2 (IKEv2) 安全协会 (SA) 的Childless 初始化 (翻译)
  14. C#-linq实战003-查询-Where
  15. CpG ODN丨艾美捷ODN 1982 (synthetic)参数说明
  16. 企业工商信息查询接口
  17. 清除svn文件(添加注册表方式)
  18. easyExcel导入失败提示用户第几行有误并回滚数据
  19. 创建线程:pthread_creat() 函数介绍
  20. Rocky Linux 8.6 (x86_64 AArch64) - RHEL 下游免费发行版

热门文章

  1. python多项式回归_Python 多项式回归 - 树懒学堂
  2. flutter 移动通知_Flutter移动电商实战 --(24)Provide状态管理基础
  3. ffmpeg推流_明白了以下5点思路,你也能用Python实现直播推流效果(技术活)
  4. 2022年软件测试工具大全(自动化、接口、性能、安全、测试管理)
  5. 惹女友生气了不用慌用python做一个3D立体花朵送女友
  6. HAproxy七层负载均衡——环境搭建及实现过程详解
  7. 图片出处识别_图片模糊怎么变清晰?方法都在这里了
  8. satd残差_RDO、SAD、SATD、λ(转贴) - [h.264]
  9. python tk messagebox_tkMessageBox
  10. 7-26 单词长度 (C语言)