刷题记录-剑指offer24:反转链表
Posted tendermelon
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了刷题记录-剑指offer24:反转链表相关的知识,希望对你有一定的参考价值。
输入一个链表,反转链表后,输出新链表的表头。
法1:递归
public class Solution { public ListNode ReverseList(ListNode head) { if(head == null||head.next == null) return head; ListNode next = head.next; ListNode newHead = ReverseList(next); next.next = head; head.next = null; return newHead; } }
递归的结束条件是遍历到原链表的尾节点,最重要的是next.next = head,实现链表反转
法2:头插法
public class Solution { public ListNode ReverseList(ListNode head) { if(head == null||head.next == null) return head; ListNode newList = new ListNode(-1); while(head!=null){ ListNode next = head.next; head.next = newList.next; newList.next = head; head = next; } return newList.next; } }
以上是关于刷题记录-剑指offer24:反转链表的主要内容,如果未能解决你的问题,请参考以下文章