ListNode(連結リスト)ってなに?
連結リストとは、データ構造の一種であるリストの中で、自分の次、および、前の要素を示す情報**(リンク情報)**を持つことで、要素を連結(リンク)させたリストのことである。
リストは、データの要素を順番に並べて扱うデータ構造のことである。
デメリット
- リンクを辿らないと各々の要素にアクセスができない!
- リンクのためのメモリを余分に持つ必要がある。
メリット
- データの個数がダイナミックに増やせる
- データの追加や削除が頻繁に発生する場合は便利
SwiftでListNodeクラスを書くとこんな感じ
ListNodeというクラスはないので、自分で作ります。
public class ListNode {
public var val: Int
public var next: ListNode?
public init(_ val: Int) {
self.val = val
self.next = nil
}
}
ListNodeクラスの中に、別なListNodeクラスが入ってます。これがリンクです。
使用例はこちらに載せました〜
http://qiita.com/Saayaman/items/63edacc424a97540f3d4