linked-list supports index assign and concatenation
This commit is contained in:
@@ -117,7 +117,7 @@ func (ls *LinkedList) LastNode() *ListNode {
|
||||
return ls.last
|
||||
}
|
||||
|
||||
func (ls *LinkedList) Last() (data interface{}, err error) {
|
||||
func (ls *LinkedList) Last() (data any, err error) {
|
||||
if ls.last != nil {
|
||||
data = ls.last.data
|
||||
} else {
|
||||
@@ -126,7 +126,8 @@ func (ls *LinkedList) Last() (data interface{}, err error) {
|
||||
return
|
||||
}
|
||||
|
||||
func (ls *LinkedList) NodeAt(index int) (node *ListNode, err error) {
|
||||
func (ls *LinkedList) NodeAt(index64 int64) (node *ListNode, err error) {
|
||||
index := int(index64)
|
||||
if ls.count == 0 {
|
||||
err = errorListEmpty()
|
||||
} else if index > ls.count {
|
||||
@@ -143,7 +144,7 @@ func (ls *LinkedList) NodeAt(index int) (node *ListNode, err error) {
|
||||
return
|
||||
}
|
||||
|
||||
func (ls *LinkedList) At(index int) (data interface{}, err error) {
|
||||
func (ls *LinkedList) At(index int64) (data any, err error) {
|
||||
node, err := ls.NodeAt(index)
|
||||
if err == nil {
|
||||
data = node.data
|
||||
@@ -151,6 +152,14 @@ func (ls *LinkedList) At(index int) (data interface{}, err error) {
|
||||
return
|
||||
}
|
||||
|
||||
func (ls *LinkedList) SetItem(index int64, data any) (err error) {
|
||||
node, err := ls.NodeAt(index)
|
||||
if err == nil {
|
||||
node.data = data
|
||||
}
|
||||
return
|
||||
}
|
||||
|
||||
func (ls *LinkedList) Insert(index int, data any) *ListNode {
|
||||
var prev *ListNode
|
||||
|
||||
@@ -183,7 +192,7 @@ func (ls *LinkedList) PushBackStringArray(items []string) {
|
||||
}
|
||||
}
|
||||
|
||||
func (ls *LinkedList) Sub(start, end int) (subList *LinkedList) {
|
||||
func (ls *LinkedList) Sub(start, end int64) (subList *LinkedList) {
|
||||
subList = NewLinkedList()
|
||||
if node, err := ls.NodeAt(start); err == nil {
|
||||
for i := start; i < end && node != nil; i++ {
|
||||
|
||||
Reference in New Issue
Block a user