面试真题

算法 · 简单 · 腾讯

手撕反转链表 — 迭代和递归实现

简单 算法 🎤 腾讯
参考答案
结论:迭代法用三指针(prev,cur,next)遍历反转;递归法先递归到尾节点再从后往前反转指针。原理:迭代初始化prev=null,cur=head;循环中保存next=cur.next,cur.next=prev,prev=cur,cur=next;返回prev。递归若head==null或head.next==null返回head;newHead=递归(head.next);head.next.next=head;head.next=null;返回newHead。对比:迭代O(n)时间O(1)空间;递归O(n)时间O(n)栈空间;示例:1->2->3反转为3->2->1,两法均适用。
题目整理自公开面经,答案由校招宝自研生成,仅供参考