dshuiahgui 2015-08-27 14:39 采纳率: 0%
浏览 1802
已结题

[编程题]回文链表.。。。。。。。。。

请编写一个函数,检查链表是否为回文。
给定一个链表ListNode* pHead,请返回一个bool,代表链表是否为回文。
测试样例:
{1,2,3,2,1}
返回:true
{1,2,3,2,3}
返回:false

  • 写回答

4条回答 默认 最新

  • havedream_one 2015-08-27 14:41
    关注
     import java.util.*;
    
    /*
    public class ListNode {
        int val;
        ListNode next = null;
    
        ListNode(int val) {
            this.val = val;
        }
    }*/
    public class Palindrome {
        public boolean isPalindrome(ListNode pHead) {
            //用于存储一半的链表
            ArrayList<Integer> list = new ArrayList<Integer>();
            ListNode p = pHead;
            if(p.next == null){
                //只有一个节点
                return true;
            }
            ListNode q = p;
            int count = 0;
            while( q.next != null){
                q = q.next;
                count++;
                if(count == 2){
                    list.add(p.val);
                    p = p.next;
                    count=0;
                }
            }
            int len = list.size();
            if(count != 0){
                //偶数节点
                list.add(p.val);
                len++; 
            }
            p = p.next;
            //System.out.println(list);
            while(p != null){
                if(p.val != list.get(len-1)){
                    return false;
                }
                len--;
                p = p.next;
            }
            return true;
        }
    }
    
    评论

报告相同问题?

悬赏问题

  • ¥15 #MATLAB仿真#车辆换道路径规划
  • ¥15 java 操作 elasticsearch 8.1 实现 索引的重建
  • ¥15 数据可视化Python
  • ¥15 要给毕业设计添加扫码登录的功能!!有偿
  • ¥15 kafka 分区副本增加会导致消息丢失或者不可用吗?
  • ¥15 微信公众号自制会员卡没有收款渠道啊
  • ¥100 Jenkins自动化部署—悬赏100元
  • ¥15 关于#python#的问题:求帮写python代码
  • ¥20 MATLAB画图图形出现上下震荡的线条
  • ¥15 关于#windows#的问题:怎么用WIN 11系统的电脑 克隆WIN NT3.51-4.0系统的硬盘