链表的反转js

本文介绍了一种链表反转算法和求解字符串数组最长公共前缀的算法。链表反转算法通过迭代方式将链表节点的next指针指向其前一个节点,实现链表的反转。最长公共前缀算法遍历字符串数组的第一个字符串,逐字符比较其余字符串,找到所有字符串共有的最长前缀。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

function reverse( linkedList ){
    var head = linkedList.head;

    // 如果只有一个节点 或者 是空链表
    if( head === null || head.next === null ){
        return;
    }
    var p = head;
    var q = p.next;
    // 反转后的头结点变成尾节点
    head.next = null;
    while(q){
        r = q.next;
        q.next = p;
        p = q;
        q = r;
    }
    // 退出循环后 r = q.next = null, q.next = q; p=q; q=null;
    // p指向原来节点的尾节点, 那么翻转后,尾节点变成头结点
    linkedList.head = p;
}

最长公共前缀

var longestCommonPrefix = function(strs) {
   var firstStrs = strs[0];
   var result ='';
   if(!strs.length){
       return result;
   }
   for (var i = 0; i < firstStrs.length; i++) {
       for (var j =  1; j < strs.length; j++) {
           if(firstStrs[i] != strs[j][i]){
               return result;
           }
        }
        result += firstStrs[i];
    }
    return result;
 };

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值