题1:判断回文
解题:双指针
定义左右两个指针,同个指针同时向中间移动,如果两个指针指向的元素不一样则返回false
public boolean judge (String str) {
// write code here
if(str.length()<2){
return true;
}
int left = 0;
int right = str.length()-1;
while(left<right){
if(str.charAt(left++)!= str.charAt(right--)){
return false;
}
}
return true;
}
题2:回文链表
解题思路
- 复制链表值到数组列表中。
- 使用双指针法判断是否为回文
List<Integer> vals = new ArrayList<Integer>();
// 当前节点
ListNode currentNode = head;
while (currentNode != null) {
vals.add(currentNode.val)
currentNode = currentNode.next;
}
/ 使用双指针判断是否回文