咋办,我叛逆的拖延症犯了,不想背面经,只能刷刷题
啊啊啊啊啊啊,不想背啊,头疼
回文链表
最简单的思路是存到一个集合里,然后双指针遍历比较
第二种是翻转一半链表,那种先不想了,找中间节点,一个走两步,一个走一步。
public boolean isPalindrome(ListNode head) {
List<Integer> list=new ArrayList<>();
ListNode cur=head;
while(cur!=null){
list.add(cur.val);
cur=cur.next;
}
int left=0,right=list.size()-1;
while(left<right){//此处写错了,写成了不等于,实际上如果是偶数情况,直接right比left小了,继续执行了就
if(list.get(left)==list.get(right)){
left++;
right--;
}else{
return false;
}
}
return true;
}