public static ListNode reversal(ListNode listNode) {
ListNode record_pre = null;
ListNode temp_next = null;
while(listNode != null) {
temp_next = listNode.next;
listNode.next = record_pre;//上次记录的复制给next
record_pre = listNode;//本次节点记录下来,下次用
listNode = temp_next;//继续遍历
}
return demoNode;
}
思路:
为了实现反转,需要在遍历链表的过程中,把next的值修改成前一个节点的值,但是我们不知道前一个节点的值。这就是本题设置的考察点。
可以设置一个recorder用来记录前一个节点,用以修改next。