标签:node 剑指offer 递归 pre 表头 nod 刷题记录 结束 return
输入一个链表,反转链表后,输出新链表的表头。
法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; } }
标签:node 剑指offer 递归 pre 表头 nod 刷题记录 结束 return
原文地址:https://www.cnblogs.com/tendermelon/p/13028285.html