mirror of
https://github.com/krahets/hello-algo.git
synced 2025-11-03 05:27:55 +08:00
feat: Add ruby code - chapter "array & linked list" (#1158)
* feat: add ruby code chapter array & linked list - array.rb - linked_list.rb - list.rb - my_list.rb * feat: add ruby code blocks * chore: fix convention
This commit is contained in:
38
codes/ruby/utils/list_node.rb
Normal file
38
codes/ruby/utils/list_node.rb
Normal file
@ -0,0 +1,38 @@
|
||||
=begin
|
||||
File: list_node.rb
|
||||
Created Time: 2024-03-18
|
||||
Author: Xuan Khoa Tu Nguyen (ngxktuzkai2000@gmail.com)
|
||||
=end
|
||||
|
||||
### 链表节点类 ###
|
||||
class ListNode
|
||||
attr_accessor :val # 节点值
|
||||
attr_accessor :next # 指向下一节点的引用
|
||||
|
||||
def initialize(val=nil, next_node=nil)
|
||||
@val = val || 0
|
||||
@next = next_node
|
||||
end
|
||||
end
|
||||
|
||||
### 将列表序列化为链表 ###
|
||||
def arr_to_linked_list(arr)
|
||||
head = current = ListNode.new arr[0]
|
||||
|
||||
for i in 1...arr.length
|
||||
current.next = ListNode.new arr[i]
|
||||
current = current.next
|
||||
end
|
||||
|
||||
head
|
||||
end
|
||||
|
||||
### 将链表反序列化为列表 ###
|
||||
def linked_list_to_arr(head)
|
||||
arr = []
|
||||
|
||||
while head
|
||||
arr << head.val
|
||||
head = head.next
|
||||
end
|
||||
end
|
||||
Reference in New Issue
Block a user