給定一個字串,請你找出其中不含有重複字元的 最長子串 的長度。
阿新 • • 發佈:2020-12-22
題目描述
給定一個連結串列,刪除連結串列的倒數第 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;
}
}