1. 程式人生 > 其它 >給定一個字串,請你找出其中不含有重複字元的 最長子串 的長度。

給定一個字串,請你找出其中不含有重複字元的 最長子串 的長度。

技術標籤:# 雙指標leetcode

題目描述

給定一個連結串列,刪除連結串列的倒數第 n 個節點,並且返回連結串列的頭結點。

示例:

給定一個連結串列: 1->2->3->4->5, 和 n = 2.

當刪除了倒數第二個節點後,連結串列變為 1->2->3->5.

說明:

  • 給定的 n 保證是有效的。

進階:

  • 你能嘗試使用一趟掃描實現嗎?

來源:力扣(LeetCode)
連結:https://leetcode-cn.com/problems/remove-nth-node-from-end-of-list
著作權歸領釦網路所有。商業轉載請聯絡官方授權,非商業轉載請註明出處。

思路

雙指標,兩個指標之間的距離是n+1,結點pre是空指標指向頭結點,是考慮頭結點被刪除時的情況。

/**
 * 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 removeNthFromEnd(ListNode head, int n) { ListNode first = head,pre = new ListNode(0,head),second = pre; for(int i = 0;i < n;++i){ first = first.next; } while(first != null){ first = first.next; second =
second.next; } second.next = second.next.next; return pre.next; } }