当前位置: 首页 > 后端技术 > Java

牛客网高频算法题系列-BM13-判断链表是否为回文结构

时间:2023-04-01 23:33:19 Java

牛客网高频算法题系列-BM13-判断链表是否为回文结构题目描述给定一个链表,请判断链表是否为回文结构。回文意味着字符串的正向和反向顺序完全相同。参见原题:BM13判断链表是否为回文结构方案一:链表遍历首先考虑特殊情况,如果链表为空或者只有一个链表,则默认为回文结构,返回直接为真。否则,使用附加链表进行处理,处理过程如下:遍历原链表,将链表中所有节点的值添加到一个链表中;遍历链表中的值,判断链表是否为回文结构,遍历过程如下:遍历链表中0-list.size()/2的值;判断i的值是否等于list.size()-i-1的值,如果不相等,则不能是回文结构,直接返回false。遍历完成后,如果链表首尾对应位置的值相等,则说明原链表为回文结构,返回true。codeimportjava.util.ArrayList;importjava.util.List;publicclassBm013{/***判断链表是否为回文结构**@paramheadListNodeclassthehead*@returnboolBoolean*/publicstaticbooleanisPail(ListNodehead){//如果链表为空或者只有一个链表,默认为回文结构,returntrueif(head==null||head.next==null){returntrue;}//遍历链表,将所有节点值放入链表Listnodes=newArrayList<>();while(head!=null){nodes.add(head.val);head=head.next;}//遍历链表中的值,判断链表是否为回文结构for(inti=0;i