剑指offer024-反转链表

反转链表

Posted by 高明 on 2020-01-01

剑指offer024-反转链表

题目

给定单链表的头节点 head ,请反转链表,并返回反转后的链表的头节点。

 

示例 1:

输入:head = [1,2,3,4,5]
输出:[5,4,3,2,1]

示例 2:

输入:head = [1,2]
输出:[2,1]

示例 3:

输入:head = []
输出:[]

 

提示:

  • 链表中节点的数目范围是 [0, 5000]
  • -5000 <= Node.val <= 5000

 

进阶:链表可以选用迭代或递归方式完成反转。你能否用两种方法解决这道题?

 

注意:本题与主站 206 题相同: https://leetcode-cn.com/problems/reverse-linked-list/

Related Topics
  • 递归
  • 链表

  • 👍 35
  • 👎 0
  • 思路

    头插链表

    代码

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    class Solution {
    public ListNode reverseList(ListNode head) {
    ListNode p = null;
    while (head != null) {
    if(p == null){
    p = new ListNode(head.val);
    }else{
    ListNode t = new ListNode(head.val);
    t.next = p;
    p = t;
    }
    head = head.next;
    }
    return p;
    }
    }
    1
    2
    3
    解答成功:
    执行耗时:0 ms,击败了100.00% 的Java用户
    内存消耗:38.2 MB,击败了41.90% 的Java用户