前端复习--翻转单链表

动机出于面试需要,因为之前就看过这些内容,所以其实不怎么费劲

现在再次献上js翻转单链表的代码:(参考<剑指offer>)

(function (){

  var node3 ={  //定义有三个节点的链表,这里要注意由与js是顺序解释的,如果开始定义node1,再定义node2,node1.next = node2,其实为undefined,所以链表节点要从尾节点定义
    value:"z",
    next:null
  }
  var node2 ={
    value:"y",
    next:node3
  }

  var node1 ={
    value:"x",
    next:node2
  }
  //从头打印链表各个节点的值,
  function printList(listHead){
    var p = listHead;
    while(p){
      console.log(p.value)
      p = p.next;
    } 
  }

  printList(node1);

  function reverse(headList){
    var pNode = headList;
    var pPrev = null;
    var pNext;

    while(pNode != null){
        pNext = pNode.next;
        pNode.next = pPrev; //reverse

        pPrev = pNode;
        pNode = pNext;
    }
    return pPrev ;  //return newHead
  }

  printList(reverse(node1));
})();


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值