8.翻转链表

Posted manmanchanglu

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了8.翻转链表相关的知识,希望对你有一定的参考价值。

leetcode题目位置:面试题24.反转链表

https://leetcode-cn.com/problems/fan-zhuan-lian-biao-lcof/

思路:借助栈的先进后出来进行反转,或者通过一个next节点来进行保存要反转到头的那个节点,防止链断裂

/**
 * 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 sum=new ListNode(0);
        ListNode p=head,q=sum;
        Stack<Integer> stack=new Stack();
        String a;
        while(p!=null){
            stack.push(p.val);
            p=p.next;
        }
        while(!stack.isEmpty()){
            //a=stack.pop();
            ListNode h=new ListNode(stack.pop());
            q.next=h;
            q=h;
        }
        return sum.next;
        
    }
}

技术图片

 

以上是关于8.翻转链表的主要内容,如果未能解决你的问题,请参考以下文章

25. k个一组翻转链表-LeetCode

翻转二叉树(2021-8-6)

翻转链表进阶:k个一组翻转链表(使用迭代的方式)

剑指Offer-- 翻转链表 (python版)

Java 求解翻转链表

翻转链表——链表