leetcode 92II

女爷i 2023-06-24 11:24 116阅读 0赞

反转从位置 m 到 n 的链表。请使用一趟扫描完成反转。

说明:
1 ≤ m ≤ n ≤ 链表长度。

示例:

输入: 1->2->3->4->5->NULL, m = 2, n = 4
输出: 1->4->3->2->5->NULL

思路: 头插法

  1. /**
  2. * Definition for singly-linked list.
  3. * public class ListNode {
  4. * int val;
  5. * ListNode next;
  6. * ListNode(int x) { val = x; }
  7. * }
  8. */
  9. class Solution {
  10. public ListNode reverseBetween(ListNode head, int m, int n) {
  11. ListNode node = new ListNode(-1);
  12. node.next = head;
  13. ListNode pre = node;
  14. for (int i = 1;i < m;i++) {
  15. pre = pre.next;
  16. }
  17. ListNode cur =pre.next;
  18. for (int i = m;i < n;i++) {
  19. ListNode tmp = cur.next;
  20. cur.next = tmp.next;
  21. tmp.next = pre.next;
  22. pre.next = tmp;
  23. //pre = tmp;
  24. }
  25. return node.next;
  26. }
  27. }

发表评论

表情:
评论列表 (有 0 条评论,116人围观)

还没有评论,来说两句吧...

相关阅读

    相关 leetcode 92II

    反转从位置 m 到 n 的链表。请使用一趟扫描完成反转。 说明: 1 ≤ m ≤ n ≤ 链表长度。 示例: 输入: 1->2->3->4->5->NULL, m =