From 42fb596ac01416f4a32db850222606613979a5fd Mon Sep 17 00:00:00 2001 From: Igneaalis Date: Wed, 13 May 2020 20:53:05 +0300 Subject: [PATCH 1/4] +linked-list.md +reverse-linked-list --- README.md | 3 --- linked-list.md | 35 +++++++++++++++++++++++++++++++++++ 2 files changed, 35 insertions(+), 3 deletions(-) delete mode 100644 README.md create mode 100644 linked-list.md diff --git a/README.md b/README.md deleted file mode 100644 index 7c3b229..0000000 --- a/README.md +++ /dev/null @@ -1,3 +0,0 @@ -# Algorithms 2019-2020 Python LEETCODE - -Check branches for information. \ No newline at end of file diff --git a/linked-list.md b/linked-list.md new file mode 100644 index 0000000..ea69dbe --- /dev/null +++ b/linked-list.md @@ -0,0 +1,35 @@ +# Linked list + +## Reverse linked list + +https://leetcode.com/problems/reverse-linked-list/ + +```python +# Definition for singly-linked list. +# class ListNode(object): +# def __init__(self, val=0, next=None): +# self.val = val +# self.next = next +class Solution(object): + def reverseList(self, head): + """ + :type head: ListNode + :rtype: ListNode + """ + + if head and head.next: + prev = head + next = head.next + head.next = None + head = next + + while (head.next): + next = next.next + head.next = prev + prev = head + head = next + + head.next = prev + return head + +``` \ No newline at end of file From 080e83306502ec737c9e60ef6cdf5c9819fb529d Mon Sep 17 00:00:00 2001 From: Igneaalis Date: Fri, 22 May 2020 19:15:05 +0300 Subject: [PATCH 2/4] Changed variables' name, added hyperlinks (anchors) --- linked-list.md | 28 +++++++++++++++------------- 1 file changed, 15 insertions(+), 13 deletions(-) diff --git a/linked-list.md b/linked-list.md index ea69dbe..a3ea47e 100644 --- a/linked-list.md +++ b/linked-list.md @@ -1,5 +1,7 @@ # Linked list ++ [Reverse linked list](#reverse-linked-list) + ## Reverse linked list https://leetcode.com/problems/reverse-linked-list/ @@ -16,20 +18,20 @@ class Solution(object): :type head: ListNode :rtype: ListNode """ + currentNode = head + if currentNode and currentNode.next: + prevNode = currentNode + nextNode = currentNode.next + currentNode.next = None + currentNode = nextNode - if head and head.next: - prev = head - next = head.next - head.next = None - head = next - - while (head.next): - next = next.next - head.next = prev - prev = head - head = next + while currentNode.next: + nextNode = nextNode.next + currentNode.next = prevNode + prevNode = currentNode + currentNode = nextNode - head.next = prev - return head + currentNode.next = prevNode + return currentNode ``` \ No newline at end of file From 0d5a6623490c347ee16f1dc29556a76c7f059ccc Mon Sep 17 00:00:00 2001 From: Igneaalis Date: Fri, 22 May 2020 19:22:14 +0300 Subject: [PATCH 3/4] Improved [Reverse linked list] --- linked-list.md | 17 ++++++----------- 1 file changed, 6 insertions(+), 11 deletions(-) diff --git a/linked-list.md b/linked-list.md index a3ea47e..cb55b12 100644 --- a/linked-list.md +++ b/linked-list.md @@ -19,19 +19,14 @@ class Solution(object): :rtype: ListNode """ currentNode = head - if currentNode and currentNode.next: - prevNode = currentNode + prevNode = None + + while currentNode: nextNode = currentNode.next - currentNode.next = None + currentNode.next = prevNode + prevNode = currentNode currentNode = nextNode - while currentNode.next: - nextNode = nextNode.next - currentNode.next = prevNode - prevNode = currentNode - currentNode = nextNode - - currentNode.next = prevNode - return currentNode + return prevNode ``` \ No newline at end of file From 57b19108930dfa4937849b8f266de07d5969ff99 Mon Sep 17 00:00:00 2001 From: Igneaalis Date: Mon, 1 Jun 2020 21:35:22 +0300 Subject: [PATCH 4/4] Added LEETCODE middle-of-the-linked-list solution. --- linked-list.md | 23 +++++++++-------------- 1 file changed, 9 insertions(+), 14 deletions(-) diff --git a/linked-list.md b/linked-list.md index cb55b12..f0ef4c0 100644 --- a/linked-list.md +++ b/linked-list.md @@ -1,10 +1,10 @@ # Linked list -+ [Reverse linked list](#reverse-linked-list) ++ [Middle of the Linked List](#middle-of-the-linked-list) -## Reverse linked list +## Middle of the Linked List -https://leetcode.com/problems/reverse-linked-list/ +https://leetcode.com/problems/middle-of-the-linked-list/ ```python # Definition for singly-linked list. @@ -13,20 +13,15 @@ https://leetcode.com/problems/reverse-linked-list/ # self.val = val # self.next = next class Solution(object): - def reverseList(self, head): + def middleNode(self, head): """ :type head: ListNode :rtype: ListNode """ - currentNode = head - prevNode = None - - while currentNode: - nextNode = currentNode.next - currentNode.next = prevNode - prevNode = currentNode - currentNode = nextNode - - return prevNode + pastNode = nextNode = head + while nextNode and nextNode.next: + pastNode = pastNode.next + nextNode = nextNode.next.next + return pastNode ``` \ No newline at end of file