203. Remove Linked List Elements
Solved
Easy
Topics
Companies
Given thehead
of a linked list and an integerval
, remove all the nodes of the linked list that hasNode.val == val
, and returnthe new head.
/**
* 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 removeElements(ListNode head, int val) {
ListNode dummyHead = new ListNode(-1,head);
ListNode cur = dummyHead;
while(cur != null && cur.next != null){
if(cur.next.val == val){
cur.next = cur.next.next;
}else{
cur = cur.next;
}
}
return dummyHead.next;
}
}
206. Reverse Linked List
Solved
Easy
Topics
Companies
Given thehead
of a singly linked list, reverse the list, and returnthe reversed list.
/**
* 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 reverseList(ListNode head) {
ListNode newHead = null;
ListNode o1 = head;
while(o1 != null){
ListNode o2 = o1.next;
o1.next = newHead;
newHead = o1;
o1 = o2;
}
return newHead;
}
}
/**
* 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 reverseList(ListNode head) {
if (head == null || head.next == null) {
return head;
}
ListNode last = reverseList(head.next);
head.next.next = head;
head.next = null;
return last;
}
}
24. Swap Nodes in Pairs
Solved
Medium
Topics
Companies
Given alinked list, swap every two adjacent nodes and return its head. You must solve the problem withoutmodifying the values in the list’s nodes (i.e., only nodes themselves may be changed.)
/**
* 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 swapPairs(ListNode head) {
ListNode dummyHead = new ListNode(-1 , head);
ListNode cur = dummyHead;
ListNode n1 = head;
while(n1 != null && n1.next != null){
ListNode n2 = n1.next.next;
cur.next = n1.next;
n1.next.next = n1;
n1.next = n2;
cur = n1;
n1 = n2;
}
return dummyHead.next;
}
}
/**
* 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 swapPairs(ListNode head) {
if(head == null||head.next==null){
return head;
}
ListNode newHead = head.next;
head.next = swapPairs(newHead.next);
newHead.next = head;
return newHead;
}
}
19. Remove Nth Node From End of List
Solved
Medium
Topics
Companies
Hint
Given thehead
of a linked list, remove thenth
node from the end of the list and return its head.
/**
* 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 dummyHead = new ListNode(-1, head);
ListNode n1 = dummyHead;
ListNode n2 = dummyHead;
for(int i = 0; i
141. Linked List Cycle
Easy
Givenhead
, the head of a linked list, determine if the linked list has a cycle in it.
There is a cycle in a linked list if there is some node in the list that can be reached again by continuously following thenext
pointer. Internally,pos
is used to denote the index of the node thattail’snext
pointer is connected to.Note thatpos
is not passed as a parameter.
Returntrue
if there is a cycle in the linked list. Otherwise, returnfalse
.
/**
* Definition for singly-linked list.
* class ListNode {
* int val;
* ListNode next;
* ListNode(int x) {
* val = x;
* next = null;
* }
* }
*/
public class Solution {
public boolean hasCycle(ListNode head) {
if (head == null || head.next == null) {
return false;
}
ListNode slow = hea服务器托管d;
ListNode fast = head.next;
while(fast!=null && fast.next!=null){
if(slow == fast) return true;
slow=slow.next;
fast=fast.next.next;
}
return false;
}
}
142. Linked List Cycle II
Solved
Medium
Topics
Companies
Given thehead
of a linked list, returnthe node where the cycle begins. If there is no cycle, returnnull
.
There is a cycle in a linked list if there is some node in the list that can be reached again by continuously following thenext
pointer. Internally,pos
is used to denote the index of the node that tail’snext
pointer is connected to (0-indexed). It is-1
if there is no cycle.Note thatpos
is not passed as a parameter.
Do not modifythe linked list.
/**
* Definition for singly-linked list.
* class ListNode {
* int val;
* ListNode next;
* ListNode(int x) {
* val = x;
* next = null;
* }
* }
*/
public class Solution {
public ListNode detectCycle(ListNode head) {
if(head==null){
return null;
}
ListNode fast = head;
ListNode slow =head;
while(fast!=null && fast.next!=null){
fast = fast.next.next;
slow = slow.next;
if(slow == fast){
slow = head;
while(slow!=fast){
slow = slow.next;
fast = fast.next;
}
return slow;
}
}
return null;
}
}
21. Merge Two Sorted Lists
Solved
Easy
Topics
Companies
You are given the heads of two sorted linked listslist1
andlist2
.
Merge the two lists into onesortedlist. The list should be made by splicing together the nodes of the first two lists.
Returnthe head of the merged linked list.
/**
* 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 mergeTwoLists(ListNode list1, ListNode list2) {
ListNode dummyHead = new ListNode(-1,null);
ListNode n = dummyHead;
while (list1 != null && list2 != null) {
if (list1.val
82. Remove Duplicates from Sorted List II
Solved
Medium
Topics
Companies
Given thehead
of a sorted linked list,delete all nodes that have duplicate numbers, leaving only distinct numbers from the original list. Returnthe linked listsortedas well.
/**
* 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 deleteDuplicates(ListNode head) {
ListNode dummyHead = new ListNode(-1 , head);
ListNode slow = dummyHead;
ListNode fast = head;
while(fast != null && fast.next != null){
if(fast.val == fast.next.val){
int val = fast.val;
while(fast != null && fast.val == val){
fast = fast.next;
slow.next = fast;
}
}else{
fast = fast.next;
slow = slow.next;
}
}
return dummyHead.next;
}
}
/**
* 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 deleteDuplicates(ListNode head) {
ListNode dummyHead = new ListNode(-1, head);
ListNode cur = dummyHead;
while (cur.next != null && cur.next.next != null) {
if (cur.next.val == cur.next.next.val) {
ListNode p = cur.next;
服务器托管 while (cur.next != null && cur.next.val == p.val) {
cur.next = cur.next.next;
}
} else {
cur = cur.next;
}
}
return dummyHead.next;
}
}
83. Remove Duplicates from Sorted List
Solved
Easy
Topics
Companies
Given thehead
of a sorted linked list,delete all duplicates such that each element appears only once. Returnthe linked listsortedas well.
/**
* 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 deleteDuplicates(ListNode head) {
ListNode cur = head;
while(cur != null && cur.next != null){
if(cur.next.val == cur.val){
cur.next = cur.next.next;
}else{
cur = cur.next;
}
}
return head;
}
}
160. Intersection of Two Linked Lists
Solved
Easy
Topics
Companies
Given the heads of two singly linked-listsheadA
andheadB
, returnthe node at which the two lists intersect. If the two linked lists have no intersection at all, returnnull
.
/**
* Definition for singly-linked list.
* public class ListNode {
* int val;
* ListNode next;
* ListNode(int x) {
* val = x;
* next = null;
* }
* }
*/
public class Solution {
public ListNode getIntersectionNode(ListNode headA, ListNode headB) {
ListNode curA = headA;
ListNode curB = headB;
while(curA != curB){
if(curA != null){
curA = curA.next;
}else{
curA = headB;
}
if(curB != null){
curB = curB.next;
}else{
curB = headA;
}
}
return curA;
}
}
服务器托管,北京服务器托管,服务器租用 http://www.fwqtg.net
机器学习模型—朴素贝叶斯 概率论中的一个关键概念,贝叶斯定理,为称为朴素贝叶斯的概率分类器提供了基础。它是一种简单但功能强大的算法,由于其易于理解、简单且易于实现而越来越受欢迎。朴素贝叶斯算法是分类应用的流行方法,尤其是垃圾邮件过滤和文本分类 什么是朴素贝叶斯…