zoukankan      html  css  js  c++  java
  • 翻转链表2

    此博客链接:

    翻转链表2

    题目链接:https://leetcode-cn.com/problems/reverse-linked-list-ii/

    题目

    给你单链表的头指针 head 和两个整数 left 和 right ,其中 left <= right 。请你反转从位置 left 到位置 right 的链表节点,返回 反转后的链表 。
     

    示例 1:


    输入:head = [1,2,3,4,5], left = 2, right = 4
    输出:[1,4,3,2,5]
    示例 2:

    输入:head = [5], left = 1, right = 1
    输出:[5]

    题解

    我一开始想着把链表分为3部分,第一部分是开头不需要翻转的链表,第二部分是需要翻转的部分,把需要翻转的部分使用头插法翻转链表,第三部分是不需要翻转的部分,然后把三部分最后链接在一起,但是当最后一部分链接时,是没有办法链接的,因为中间部分经过头插法翻转链表后,指针是一直指向最前面,不会在指向最后,所以没有办法和第三部分链接。

    后来看了题解,原来使用头插法是没有问题的,只是不需要把链表分为三个部分,而是在不需要翻转的部分使用头插法,每次都是把需要翻转的插到第一个需要翻转的元素后面。

    代码

    class Solution {
        public ListNode reverseBetween(ListNode head, int left, int right) {
            ListNode p=head;
            ListNode q=head;
            while(q!=null){
                 if(q.next.val==left)
                {
                    p=q;
                    q=q.next;
                    break;
                }
            }
            while(p.next.val!=right)
            {
                ListNode t=q.next;
                p.next=t;
                q.next=t.next;
                t.next=q;
                // System.out.println(head);
            }
            return head;
        }
    }

    结果

    但是吧,奈何我的程序还是结果不对。

    出来混总是要还的
  • 相关阅读:
    WordPress插入图片无法居中的解决方法
    wordpress文章显示同一分类下的上一篇下一篇
    git4
    git3
    git2
    git1
    百度地图vue版本标记点拖拽事件传参问题
    postcss-plugin-px2rem的使用
    保留小数位toFixed()方法的怪异表现
    大公司是怎样开发和部署前端代码(转张云龙大神的回答)
  • 原文地址:https://www.cnblogs.com/ping2yingshi/p/14813009.html
Copyright © 2011-2022 走看看