Skip to content

Commit 8085da0

Browse files
committed
2025-02-27 v. 8.7.5: added "1669. Merge In Between Linked Lists"
1 parent 5556314 commit 8085da0

File tree

4 files changed

+92
-1
lines changed

4 files changed

+92
-1
lines changed

README.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -708,6 +708,7 @@ Profile on LeetCode: [fartem](https://leetcode.com/fartem/).
708708
| 1609. Even Odd Tree | [Link](https://leetcode.com/problems/even-odd-tree/) | [Link](./lib/medium/1609_even_odd_tree.rb) | [Link](./test/medium/test_1609_even_odd_tree.rb) |
709709
| 1630. Arithmetic Subarrays | [Link](https://leetcode.com/problems/arithmetic-subarrays/) | [Link](./lib/medium/1630_arithmetic_subarrays.rb) | [Link](./test/medium/test_1630_arithmetic_subarrays.rb) |
710710
| 1641. Count Sorted Vowel Strings | [Link](https://leetcode.com/problems/count-sorted-vowel-strings/) | [Link](./lib/medium/1641_count_sorted_vowel_strings.rb) | [Link](./test/medium/test_1641_count_sorted_vowel_strings.rb) |
711+
| 1669. Merge In Between Linked Lists | [Link](https://leetcode.com/problems/merge-in-between-linked-lists/) | [Link](./lib/medium/1669_merge_in_between_linked_lists.rb) | [Link](./test/medium/test_1669_merge_in_between_linked_lists.rb) |
711712
| 2116. Check if a Parentheses String Can Be Valid | [Link](https://leetcode.com/problems/check-if-a-parentheses-string-can-be-valid/) | [Link](./lib/medium/2116_check_if_a_parentheses_string_can_be_valid.rb) | [Link](./test/medium/test_2116_check_if_a_parentheses_string_can_be_valid.rb) |
712713
| 2425. Bitwise XOR of All Pairings | [Link](https://leetcode.com/problems/bitwise-xor-of-all-pairings/) | [Link](./lib/medium/2425_bitwise_xor_of_all_pairings.rb) | [Link](./test/medium/test_2425_bitwise_xor_of_all_pairings.rb) |
713714
| 2429. Minimize XOR | [Link](https://leetcode.com/problems/minimize-xor/) | [Link](./lib/medium/2429_minimize_xor.rb) | [Link](./test/medium/test_2429_minimize_xor.rb) |

leetcode-ruby.gemspec

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ require 'English'
55
::Gem::Specification.new do |s|
66
s.required_ruby_version = '>= 3.0'
77
s.name = 'leetcode-ruby'
8-
s.version = '8.7.4'
8+
s.version = '8.7.5'
99
s.license = 'MIT'
1010
s.files = ::Dir['lib/**/*.rb'] + %w[README.md]
1111
s.executable = 'leetcode-ruby'
Lines changed: 42 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,42 @@
1+
# frozen_string_literal: true
2+
3+
# https://leetcode.com/problems/merge-in-between-linked-lists/
4+
# @param {ListNode} list1
5+
# @param {Integer} a
6+
# @param {Integer} b
7+
# @param {ListNode} list2
8+
# @return {ListNode}
9+
def merge_in_between(list1, a, b, list2)
10+
node_a = nil
11+
node_b = nil
12+
pointer = list1
13+
count = 0
14+
15+
a -= 1
16+
b += 1
17+
18+
while pointer
19+
if count == a
20+
node_a = pointer
21+
elsif count == b
22+
node_b = pointer
23+
end
24+
25+
count += 1
26+
pointer = pointer.next
27+
end
28+
29+
return list1 unless node_a
30+
31+
node_a.next = list2
32+
33+
if node_b
34+
pointer = list2
35+
36+
pointer = pointer.next while pointer.next
37+
38+
pointer.next = node_b
39+
end
40+
41+
list1
42+
end
Lines changed: 48 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,48 @@
1+
# frozen_string_literal: true
2+
3+
require_relative '../test_helper'
4+
require_relative '../../lib/common/linked_list'
5+
require_relative '../../lib/medium/1669_merge_in_between_linked_lists'
6+
require 'minitest/autorun'
7+
8+
class MergeInBetweenLinkedListTest < ::Minitest::Test
9+
def test_default_one
10+
assert(
11+
::ListNode.are_equals(
12+
::ListNode.from_array(
13+
[10, 1, 13, 1_000_000, 1_000_001, 1_000_002, 5]
14+
),
15+
merge_in_between(
16+
::ListNode.from_array(
17+
[10, 1, 13, 6, 9, 5]
18+
),
19+
3,
20+
4,
21+
::ListNode.from_array(
22+
[1_000_000, 1_000_001, 1_000_002]
23+
)
24+
)
25+
)
26+
)
27+
end
28+
29+
def test_default_two
30+
assert(
31+
::ListNode.are_equals(
32+
::ListNode.from_array(
33+
[0, 1, 1_000_000, 1_000_001, 1_000_002, 1_000_003, 1_000_004, 6]
34+
),
35+
merge_in_between(
36+
::ListNode.from_array(
37+
[0, 1, 2, 3, 4, 5, 6]
38+
),
39+
2,
40+
5,
41+
::ListNode.from_array(
42+
[1_000_000, 1_000_001, 1_000_002, 1_000_003, 1_000_004]
43+
)
44+
)
45+
)
46+
)
47+
end
48+
end

0 commit comments

Comments
 (0)