链表反转:单链表反转的方法,递归和迭代实现
单链表由含数据域和指针域(next)的节点组成,头节点起始,尾节点next为None。反转链表用于逆序输出、回文判断等场景。 迭代法:遍历链表,维护prev(初None)、current(头节点)、next指针。步骤:保存current.next→next,反转current.next→prev,移动prev和current,current为None时返回prev(新头)。时间O(n),空间O(1),直观。 递归法:递归反转子链表(终止于空或单节点),递归后设head.next.next=head,head.next=None,返回新头。时间O(n),空间O(n),代码简洁。 对比:迭代无栈风险,递归依赖栈。关键:迭代注意指针顺序,递归明确终止条件。
阅读全文