zoukankan      html  css  js  c++  java
  • Leetcode-234. Palindrome Linked List

    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;
    };

     

     JavaScript中的shift()和pop()函数
     

    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

  • 相关阅读:
    Windows下Java File对象创建文件夹时的一个"坑"
    java.util.zip.ZipOutputStream压缩无乱码(原创)
    d指针在Qt上的应用及实现
    Java实现 蓝桥杯 算法提高 最大乘积
    Java实现 蓝桥杯 算法训练 p1103
    Java实现 蓝桥杯 算法训练 p1103
    Java蓝桥杯 算法训练 复数归一化
    Java蓝桥杯 算法训练 复数归一化
    Java实现 蓝桥杯 算法提高 最大乘积
    Java实现 蓝桥杯 算法提高 最大乘积
  • 原文地址:https://www.cnblogs.com/Decmber/p/5163130.html
Copyright © 2011-2022 走看看