(链表)13-判断一个链表是否为回文结构

复制代码
 1 import java.util.*;
 2 
 3 /*
 4  * public class ListNode {
 5  *   int val;
 6  *   ListNode next = null;
 7  * }
 8  */
 9 public class Solution {
10     /**
11      *
12      * @param head ListNode类 the head
13      * @return bool布尔型
14      */
15     public boolean isPail (ListNode head) {
16         // 申请一个数组存储链表中的数据
17         ArrayList<Integer> nums = new ArrayList();
18         // 将链表元素取出依次放入数组
19         while (head != null) {
20             nums.add(head.val);
21             head = head.next;
22         }
23         // 申请头尾两个指针-从头尾同时访问数组
24         int left = 0;
25         int right = nums.size() - 1;
26         while (left < right) {
27             if (nums.get(left).equals(nums.get(right)) == false) {
28                 // 左右不对称
29                 return false;
30             }
31             // 移动指针
32             left = left + 1;
33             right = right - 1;
34         }
35         // 校验完毕-左右对称
36         return true;
37     }
38 }
复制代码

 

posted @   StringBuilder  阅读(3)  评论(0编辑  收藏  举报
(评论功能已被禁用)
相关博文:
阅读排行:
· 终于写完轮子一部分:tcp代理 了,记录一下
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
点击右上角即可分享
微信分享提示