iis服务器助手广告广告
返回顶部
首页 > 资讯 > 后端开发 > Python >Java深入分析链表面试实例题目
  • 323
分享到

Java深入分析链表面试实例题目

2024-04-02 19:04:59 323人浏览 泡泡鱼

Python 官方文档:入门教程 => 点击学习

摘要

目录链表面试题一问题描述:问题分析:问题讲解:代码实现:链表面试题二问题描述:问题分析:问题讲解:代码实现:链表面试题一 判断链表是否是回文结构。 问题描述: 兄弟们,看图理解什么是

链表面试题一

判断链表是否是回文结构。

问题描述:

兄弟们,看图理解什么是链表的回文结构:

回文结构:正着读12 -> 23 ->34,倒着读12->23->34

奇数偶数都可以:

问题分析:

要判断是不是回文结构,那么我们就要遍历链表,一个从前往后走,一个从后往前走,对应的val值要相同,那么我们就必须修改链表的指向,这里就要用到快慢指针帮我们找到中间的节点,从中间节点开始改变指向,指向变更完成之后再开始遍历。

问题讲解:

第一步:为了确保始终能找到我们的链表,定义一个head变量一直指向头节点。

第二步:定义两个变量,开始都指向head,通过快慢指针的方法求出中间节点。

第三步:定义一个cur变量指向中间节点的后面一个节点,让cur变量来修改指向。

第四步:定义一个curNext变量等于cur.Next,防止改变指向后无法找到后面的节点。

代码实现:

  public boolean chkPalindrome(Listnode head) {
        if(head == null) return false;//判断一下链表是不是空,空的话直接返回false
        ListNode fast = head;//快指针fast,初始等于head
        ListNode slow = head;//慢指针slow,初始等于head
        while(fast != null && fast.next != null){//如果链表是奇数,fast.next == null停下,如果链表是偶数fast == null停下
            fast = fast.next.next;//fast走两步
            slow = slow.next;//slow走一步
 
        }
        ListNode cur = slow.next;//cur等于slow的下一个节点
        while(cur != null){//cur不为空开始反转
            ListNode curNext = cur.next;//curNext等于cur的下一个节点
            cur.next = slow;//开始反转
            slow = cur;//反转完了后让slow等于cur
            cur = curNext;//cur再往后走一步。
        }
        while(head != slow){//判断是不是回文结构
            if(head.val != slow.val){//不是回文结构
                return false;
            }
            if(head.next == slow){//偶数链表的情况
                return true;
            }
            head = head.next;
            slow = slow.next;
        }
        return true;
    }

链表面试题二

输入两个链表,找出它们的第一个公共结点。

问题描述:

问题分析:

判断:

1.如果两个链表是相交那么是Y还是X形状?  Y

2.如果两个链表相交,值val域相同还是next域相同?  next域相同

上图就是相交的链表。 

问题讲解:

第一步:先定义两个字节变量分别指向两个链表的头,headA和headB。

第二步:定义两个变量求出两条链表的差值。

第三步:再定义两个字节变量ps和pl分别指向headA和headB。

第四步:让长的链表先走他们的差值步。

第五步:两个链表再一起走。

第六步:当ps=pl的时候就是共同节点了。

代码实现:

 public ListNode getIntersectionNode(ListNode headA, ListNode headB) {
        if(headB == null || headA == null) return null;//判断其中一条链表的头节点为空就是没有焦点
        ListNode ps = headA;
        ListNode pl = headB;
        int lenA = 0;
        int lenB = 0;
        while(ps != null){求出ps链表的长度
            lenA++;
            ps = ps.next;
        }
        ps = headA;//让ps重新等于头节点
        while(pl != null){求出pl链表的长度
            lenB++;
            pl = pl.next;
        }
        pl = headB;//让pl重新等于头节点
        int len = lenA - lenB;
        if(len < 0){//判断ps长还是pl长
            ps = headB;
            pl = headA;
            len = lenB - lenA;
        }
         while(len != 0)//求两条链表的差值
                ps = ps.next;
                len--;
 
            }
        while(ps != pl){
            
            ps = ps.next;
            pl = pl.next;
        }
        return ps;
    }

到此这篇关于Java 深入分析链表面试实例题目的文章就介绍到这了,更多相关Java 链表 内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

--结束END--

本文标题: Java深入分析链表面试实例题目

本文链接: https://www.lsjlt.com/news/143529.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • Java深入分析链表面试实例题目
    目录链表面试题一问题描述:问题分析:问题讲解:代码实现:链表面试题二问题描述:问题分析:问题讲解:代码实现:链表面试题一 判断链表是否是回文结构。 问题描述: 兄弟们,看图理解什么是...
    99+
    2022-11-13
  • web前端面试题实例题目分析
    今天小编给大家分享一下web前端面试题实例题目分析的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。面试官:请你谈一下自适应(适...
    99+
    2023-07-05
  • Java链表实例分析
    这篇文章主要介绍了Java链表实例分析的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇Java链表实例分析文章都会有所收获,下面我们一起来看看吧。1、删除值为val的所有节点删除链表中等于给定值val的所有节点。...
    99+
    2023-06-29
  • Java 详细分析四个经典链表面试题
    前言: 上一章更到了链表,虽然知道了什么是链表,链表的结构是怎么样的,但这是远远不够的,我们只清楚了点皮毛,如果让你做题你还是会无从下手,所以我们必须多做题,在做题的过程中慢慢的我们...
    99+
    2022-11-13
  • Java并发面试题实例分析
    这篇文章主要讲解了“Java并发面试题实例分析”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Java并发面试题实例分析”吧!题目结论多线程并发的同时进行set、get操作, A线程...
    99+
    2023-06-05
  • Java多线程面试题实例分析
    这篇文章主要介绍了Java多线程面试题实例分析的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇Java多线程面试题实例分析文章都会有所收获,下面我们一起来看看吧。问题一A线程正在执行一个对象中的同步方法,B线程是...
    99+
    2023-06-29
  • Python面试题实例分析
    这篇文章主要介绍“Python面试题实例分析”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“Python面试题实例分析”文章能帮助大家解决问题。一、类继承问题:有如下的一段代码:如何调用类 A 的 s...
    99+
    2023-06-17
  • HTML5面试题实例分析
    这篇文章主要介绍“HTML5面试题实例分析”,在日常操作中,相信很多人在HTML5面试题实例分析问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”HTML5面试题实例分析”的疑惑有所帮助!接下来,请跟着小编一起来...
    99+
    2023-06-03
  • Java之单链表问题的示例分析
    这篇文章给大家分享的是有关Java之单链表问题的示例分析的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。单链表单链表是一种链式存取的数据结构,用一组地址任意的存储单元存放线性表中的数据元素。链表中的数据是以结点来表...
    99+
    2023-06-20
  • Java面试题之JVM的示例分析
    这篇文章给大家分享的是有关Java面试题之JVM的示例分析的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。面试题1:你遇到过哪些OOM情况,什么原因造成的?怎么解决的?该问题主要针对你遇到的实际问题出发,可以根据你...
    99+
    2023-06-20
  • PHP面试题实例代码分析
    本篇内容主要讲解“PHP面试题实例代码分析”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“PHP面试题实例代码分析”吧!Q1: == 和 === 之间有什么区别?话题: PHP困难: ⭐如果是两个...
    99+
    2023-06-30
  • 常见angular面试题实例分析
    本篇内容主要讲解“常见angular面试题实例分析”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“常见angular面试题实例分析”吧!1、angular 的数据...
    99+
    2022-10-19
  • JavaScript面试题实例代码分析
    这篇文章主要介绍了JavaScript面试题实例代码分析的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇JavaScript面试题实例代码分析文章都会有所收获,下面我们一起来看看...
    99+
    2022-10-19
  • CSS面试题实例代码分析
    这篇文章主要介绍了CSS面试题实例代码分析的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇CSS面试题实例代码分析文章都会有所收获,下面我们一起来看看吧。简单的代码如下:Firs...
    99+
    2022-10-19
  • TS面试题实例代码分析
    本篇内容主要讲解“TS面试题实例代码分析”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“TS面试题实例代码分析”吧!第一层的要求是这样的:实现一个 zip 函数,对两个数组的元素按顺序两两合并,比...
    99+
    2023-07-05
  • Python面试题陷阱实例分析
    这篇文章主要讲解了“Python面试题陷阱实例分析”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Python面试题陷阱实例分析”吧!问题1:请问如何修改以下Python代码,使得下面的代码调...
    99+
    2023-06-17
  • JavaScript数组面试题实例分析
    今天小编给大家分享一下JavaScript数组面试题实例分析的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。 晚上下...
    99+
    2023-06-27
  • web前端面试题实例分析
    今天小编给大家分享一下web前端面试题实例分析的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。面试官:页面导入样式时,使用 l...
    99+
    2023-07-05
  • Python面试题实现例子分析
    本篇内容介绍了“Python面试题实现例子分析”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!面试怎么做在进入 Python 题海之前,我们还...
    99+
    2023-06-16
  • Java面试题之分布式的示例分析
    这篇文章主要为大家展示了“Java面试题之分布式的示例分析”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“Java面试题之分布式的示例分析”这篇文章吧。面试题1:说说什么分布式事务?解释一下什么是...
    99+
    2023-06-20
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作