道阻且长,行则将至,走慢一点没关系,不停|

Ac_c0mpany丶

园龄:3年7个月粉丝:6关注:3

2023-12-13 09:22阅读: 4评论: 0推荐: 0

[LeetCode] LeetCode92. 反转链表II

题目描述

思路:同LeetCode25. K个一组翻转链表

  1. 因为涉及到可能链表的头节点会改变,所以设置dummy节点
  2. 先走left - 1步到达left的左边一个节点
  3. 查看后面是否存在right - left + 1个节点
  4. 先翻转内部节点指向right - left次
  5. 再翻转外部节点

方法一:

/**
 * Definition for singly-linked list.
 * public class ListNode {
 *     int val;
 *     ListNode next;
 *     ListNode() {}
 *     ListNode(int val) { this.val = val; }
 *     ListNode(int val, ListNode next) { this.val = val; this.next = next; }
 * }
 */
class Solution {
    public ListNode reverseBetween(ListNode head, int left, int right) {
        // 因为涉及到可能链表的头节点会改变,所以设置dummy节点
		ListNode dummy = new ListNode(0, head);
        ListNode cur = dummy;
        // 先走left - 1步到达left的左边一个节点
		for (int i = 0; i < left - 1; i ++) {
            cur = cur.next;
        }
		// 查看后面是否存在right - left + 1个节点
        ListNode p = cur;
        for (int i = 0; i < right - left + 1 && p != null; i ++) {
            p = p.next;
        } 
        if (p == null) return null;
        ListNode node1 = cur.next;
        ListNode node2 = cur.next.next;
		// 先翻转内部节点指向right - left次
        for (int i = 0; i < right - left; i ++) {
            ListNode temp = node2.next;
            node2.next = node1;
            node1 = node2;
            node2 = temp;
        }
		// 再翻转外部节点
        ListNode temp = cur.next;
        cur.next = node1;
        temp.next = node2;
        return dummy.next;
    }
}

本文作者:Ac_c0mpany丶

本文链接:https://www.cnblogs.com/keyongkang/p/17898310.html

版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆许可协议进行许可。

posted @   Ac_c0mpany丶  阅读(4)  评论(0编辑  收藏  举报
点击右上角即可分享
微信分享提示
评论
收藏
关注
推荐
深色
回顶
收起
  1. 1 You Are My Sunshine REOL
You Are My Sunshine - REOL
00:00 / 00:00
An audio error has occurred.

作曲 : Traditional

You are my sunshine

My only sunshine.

You make me happy

When skies are gray.

You'll never know, dear,

How much I love you.

Please don't take my sunshine away

The other night, dear,

When I lay sleeping

I dreamed I held you in my arms.

When I awoke, dear,

I was mistaken

So I hung my head and cried.

You are my sunshine,

My only sunshine.

You make me happy

When skies are gray.

You'll never know, dear,

How much I love you.

Please don't take my sunshine away.

You are my sunshine,

My only sunshine

You make me happy

When skies are gray.

You'll never know, dear

How much I love you

Please don't take my sunshine away

Please don't take my sunshine away.

Please don't take my sunshine away.