算法 day4-链表的逆置

链表的逆置

这样一个链表
在这里插入图片描述
在这里插入图片描述
我们想要将它逆置 相当于箭头换一个方向
在这里插入图片描述
在这里插入图片描述
通过递归的方式来进行逆置

function nizhi(root){
          if(root.next.next == null){   //代表当前节点是倒数第二个节点
              root.next.next = root; //让最后一个节点的next指向自己(倒数第二个)
              return root.next
          }else{
              var result = nizhi(root.next);
              root.next.next = root;
              root.next = null
              return result;
          }
      }
      var newRoot=nizhi(node1)
      console.log(newRoot);

上面这是进行逆置的代码实现

下面是全部代码

function Node(value){
           this.value = value;
           this.next = null;
       }
      var node1 = new Node(1)
       var node2 = new Node(2)
       var node3 = new Node(3)
       var node4 = new Node(4)
       var node5 = new Node(5)
       node1.next = node2
       node2.next = node3
       node3.next = node4
       node4.next = node5
// console.log(node1);
      function nizhi(root){
          if(root.next.next == null){   //代表当前节点是倒数第二个节点
              root.next.next = root; //让最后一个节点的next指向自己(倒数第二个)
              return root.next   //递归的出口
          }else{
              var result = nizhi(root.next);
              root.next.next = root;
              root.next = null
              return result;
          }
      }
      var newRoot=nizhi(node1)
      console.log(newRoot);

      function bianLink(root){ //进行递归遍历
          if (root == null) return;
          console.log(root.value);
          bianLink(root.next)
      }
      bianLink(newRoot)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值