美文网首页
面试题24: 反转链表

面试题24: 反转链表

作者: mark_x | 来源:发表于2019-10-17 12:47 被阅读0次

开始在leetcode上做题了, 这样不用自己编写测试代码了, 而且测试更全面, 方便哟

/**
 * Definition for singly-linked list.
 * public class ListNode {
 *     int val;
 *     ListNode next;
 *     ListNode(int x) { val = x; }
 * }
 
 
 注意: 这里的头结点就是第一个元素
 */
class Solution {
    public ListNode reverseList(ListNode head) {
        if(head == null) return null;
        
        ListNode pReversedHead = null;
        
        ListNode pPre = null;
        ListNode pCurr = head;
        
        
        while(pCurr != null){
            if(pCurr.next == null) pReversedHead = pCurr;
            
            ListNode pNext = pCurr.next;
            pCurr.next = pPre;
            
            pPre = pCurr;
            pCurr = pNext;
            
        }
        
    return pReversedHead;
    }   
}

递归法

/**
 * Definition for singly-linked list.
 * public class ListNode {
 *     int val;
 *     ListNode next;
 *     ListNode(int x) { val = x; }
 * }
 
 每次递归: 取出节点元素, 头插法插入新链表
 
 */
class Solution {
    public ListNode reverseList(ListNode head) {
        ListNode reHead = new ListNode(0);
        reHead.next = null;
        ReCore(head, reHead);
        
        return reHead.next;
 
    }
    
    public void ReCore(ListNode node, ListNode reHead){
        if(node == null) return;
        ListNode next = node.next;
        
        node.next = reHead.next;
        reHead.next = node;
        ReCore(next, reHead);
    
    }
}

相关文章

  • 反转链表

    《剑指offer》面试题24:输入一个链表,反转链表后,输出新链表的表头。 思路:反转链表就是将链表中每一个节点的...

  • 剑指offer第二版-24.反转链表

    本系列导航:剑指offer(第二版)java实现导航帖 面试题24:反转链表 题目要求:如题 解题思路:想要链表反...

  • 数据结构之 swift 实现链表反转

    链表反转很熟悉的面试题,关于链表的基础知识就不再累赘了,如何swift实现链表的反转。 传入链表的头结点 返回一个...

  • 链表的反转

    反转链表是一道很基本的面试题,通过更改节点之间的链接来反转链表。 1.单链表的反转 题目 示例 用一幅图来解释:这...

  • 1.数据结构-链表问题

    链表相关问题 删除节点 链表去重 有环链表 反转链表 链表排序 链表相交 其他问题 面试题 02.03. 删除中间...

  • 面试题24:反转链表

    题目描述: 输入一个链表,反转链表后,输出新链表的表头。 解题思路: 为防止链表出现断裂的情况,需要定义3个指针,...

  • 面试题24:反转链表

    输入一个链表的头结点,反转链表后,并返回反转链表的头结点。 为了避免断裂现象的发生,应该设置三个节点指针去检查。即...

  • 面试题24: 反转链表

    开始在leetcode上做题了, 这样不用自己编写测试代码了, 而且测试更全面, 方便哟 递归法

  • 面试题24:反转链表

    题目:输入一个链表,反转链表后,输出新链表的表头。 解题思路:这道题注意思考三个问题:输入的链表头指针是空或者输入...

  • 面试题24:反转链表

    题目:定义一个函数,输入一个链表的头节点,反转该链表并输出反转后链表的头节点。思路:定义三个参数,pre、node...

网友评论

      本文标题:面试题24: 反转链表

      本文链接:https://www.haomeiwen.com/subject/mqmmmctx.html