234. 回文链表 - 力扣LeetCode将链表的值复制到数组中 再使用双指针分别从两端遍历判断是否回文class Solution { public boolean isPalindrome(ListNode head) { ListInteger vals new ArrayListInteger(); // 将链表的值复制到数组中 ListNode currentNode head; while (currentNode ! null) { vals.add(currentNode.val); currentNode currentNode.next; } // 使用双指针判断是否回文 int front 0; int back vals.size() - 1; while (front back) { if (!vals.get(front).equals(vals.get(back))) { return false;//对称的每个位置都要相等错一个都不行 } front; back--; } return true; } }(注意这里的数组不是严格意义上的数组是口语化的叫法这里其实是一个List属于集合这也是“补充”中Ⅱ的答案)补充Ⅰ为啥要把链表弄到数组里面再用双指针链表本身不能用指针吗因为数组有下标而链表没有下标不好找位置不仅耗时长而且代码更加复杂Ⅱvals.get(front).equals(vals.get(back)) 为什么不能写成 vals[front].equals(vals[back])后者编译错误不能运行这里vals不能算是数组本质是List集合只能用get取值不能用数组类型的取值方法取值