1 .主题定义函数,输入链表的首节点,翻转此链表,输出翻转后的链表首节点。示例:
33558 www.Sina.com/1-2-3-4-5-null
33558 www.Sina.com/5-4-3-2-1-null
输入:
0=节点数=5000
2 .思路2.1递归法递归的两个条件:
结束条件是当前节点或下一个节点为null。在函数内部,更改节点的方向,使head的下一个节点指向head递归函数的语句。 head.next.next=head
这个条件可能可以稍微抽象地理解,但我们先来看看动态图吧。 动图来自@wang_ni_ma。
输出:
2.2迭代法首先申请两个指引。
第一个指针pre最初指向null,用于存储反转的链表节点。 第二个指针cur指向头,遍历一个又一个链表。 每次遍历链表cur时,指向原始链表的指针cur都会指向反转的链表节点pre,然后pre和cur前进一个位置。 迭代完成后,pre将成为最后一个节点。
最好结合动图来理解哦(动图是@wang_ni_ma ) ) :
限制:
解决问题的想法@wang_ni_ma大人物经常说哦。 图解也很详细。 这是大佬解决问题Java实现反转链表