Given a singly linked list, determine if it is a palindrome.
Follow up:
Could you do it in O(n) time and O(1) space?
/** * Definition for singly-linked list. * function ListNode(val) { * this.val = val; * this.next = null; * } */ /** * @param {ListNode} head * @return {boolean} */ var isPalindrome = function(head) { if(head===null){ return true; } var list=new Array(); while(head){ list.push(head.val); head=head.next; } while(list.length > 1){ if(list.pop()!==list.shift()){ return false; } } return true; };
1.shift()函数
定义
该函数从从数组中删除第一项,并返回该删除项。
用法示例
var fruits = ["Banana", "Orange", "Apple", "Mango"]; fruits.shift() console.log(fruits);
结果输出:
Orange,Apple,Mango
注:该方法会改变数组的长度
2.pop()函数
定义
该函数从从数组中删除最后项,并返回该删除项。
用法示例
var fruits = ["Banana", "Orange", "Apple", "Mango"]; fruits.pop() console.log(fruits);
结果输出:
Banana, Orange, Apple
3.unshift()定义和用法
unshift() 方法可向数组的开头添加一个或更多元素,并返回新的长度。
语法:arrayObject.unshift(newelement1,newelement2,....,newelementX)
参数描述:
newelement1 必需。向数组添加的第一个元素。
newelement2 可选。向数组添加的第二个元素。
newelementX 可选。可添加若干个元素。
返回值:arrayObject 的新长度。
说明:unshift() 方法将把它的参数插入 arrayObject 的头部,并将已经存在的元素顺次地移到较高的下标处,以便留出空间。该方法的第一个参数将成为数组的新元素 0,如果还有第二个参数,它将成为新的元素 1,以此类推。
请注意,unshift() 方法不创建新的创建,而是直接修改原有的数组。
提示和注释
注释:该方法会改变数组的长度。
注释:unshift() 方法无法在 Internet Explorer 中正确地工作!
提示:要把一个或多个元素添加到数组的尾部,请使用 push() 方法。
实例:在本例中,我们将创建一个数组,并把一个元素添加到数组的开头,并返回数组的新长度:
<script type="text/javascript">
var arr = new Array()
arr[0] = "George"
arr[1] = "John"
arr[2] = "Thomas"
document.write(arr + "<br />")
document.write(arr.unshift("William") + "<br />")
document.write(arr)
</script>
输出:
George,John,Thomas
4
William,George,John,Thomas
4.push() 定义和用法
push() 方法可向数组的末尾添加一个或多个元素,并返回新的长度。
语法:arrayObject.push(newelement1,newelement2,....,newelementX)
参数描述:
newelement1 必需。要添加到数组的第一个元素。
newelement2 可选。要添加到数组的第二个元素。
newelementX 可选。可添加多个元素。
返回值:把指定的值添加到数组后的新长度。
说明:push() 方法可把它的参数顺序添加到 arrayObject 的尾部。它直接修改 arrayObject,而不是创建一个新的数组。push() 方法和 pop() 方法使用数组提供的先进后出栈的功能。
提示和注释:
注释:该方法会改变数组的长度。
提示:要想数组的开头添加一个或多个元素,请使用 unshift() 方法。
实例:在本例中,我们将创建一个数组,并通过添加一个元素来改变其长度:
<script type="text/javascript">
var arr = new Array(3)
arr[0] = "George"
arr[1] = "John"
arr[2] = "Thomas"
document.write(arr + "<br />")
document.write(arr.push("James") + "<br />")
document.write(arr)
</script>
输出:
George,John,Thomas
4
George,John,Thomas,James