Algorithm
-
What:给定一个链表,删除链表的倒数第 n 个节点,并且返回链表的头结点。
-
How:这是一道典型的利用双指针法解题。首先让指针first指向头节点,然后让其向后移动n步,接着让指针sec指向头结点,并和first一起向后移动。当first的next指针为NULL时,sec即指向了要删除节点的前一个节点,接着让first指向的next指针指向要删除节点的下一个节点即可。
-
Key Codes
class Solution {
public ListNode removeNthFromEnd(ListNode head, int n) {
ListNode p = new ListNode(-1);
p.next = head;
ListNode first = p;
ListNode sec = p;
while (first != null && n > -1) {
first = first.next;
n--;
}
while (first != null) {
first = first.next;
sec = sec.next;
}
sec.next = sec.next.next;
return p.next;
}
}
Review
Tip
- What PLSQL使用技巧
快捷输入SQL语句,例如输入s,按下空格,自动替换成SELECT;再例如,输入sf,按下空格,自动替换成SELECT * FROM,非常方便,节省了大量的时间去编写重复的SQL语句。
设置方法:菜单Tools --> Preferences --> Editor --> AutoReplace.(勾选) --> Edit
编写相应的txt文件,将其放到plsql 的安装目录下即可,语法规则(例):s=SELECT。