单链表反转
前言:人生第一道算法题,没啥意思,就想记录一下- -
实现思路
先声明一个新的节点pre = null,然后声明一个新的节点cur = head,把头节点赋值给它,然后声明一个中间节点temp = cur.next,也就是将下一个节点赋值给中间节点temp
然后,赋值完之后再对cur.next进行操作,领cur.next = pre,也就是将当前节点的下一个节点,就是当前传过来的节点,比如一开始不是传入头节点吗,那么这时就让头节点的下一个节点指向pre,也就是null,然后再对pre进行操作,领pre = cur,主要是为下一次的迭代做好铺路,再让cur = temp,就是将开头中间节点保存的那个节点赋值给cur。以上的这些操作一直循环执行,直到cur指向null
最后,这些操作完之后,此时pre就是最后的节点了,返回pre
案例代码
1 | var reverseList = function(head) { |
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 AliveSeven's Blog!
评论