二叉树|二叉树 单链表 程序运行所需文件 02 创建单链表
Swift 3.0
//
//CreatSinglyList.swift
//AlgorithmLeetCode
//
//Created by okerivy on 2017/3/20.
//Copyright ? 2017年 okerivy. All rights reserved.
//import Foundationtypealias SinglyListNode = CreatSinglyList.SinglyListNodepublic class CreatSinglyList {/**
* Definition for singly-linked list.
* public class ListNode {
*public var val: Int
*public var next: ListNode?
*public init(_ val: Int) {
*self.val = val
*self.next = nil
*}
* }
*/class SinglyListNode {
var val: Int
var next: SinglyListNode?
init(_ val: Int) {
self.val = val
self.next = nil
}
}var head: SinglyListNode?
var tail: SinglyListNode?// 尾插法
func appendToTail(_ val: Int) {
if tail == nil {
tail = SinglyListNode.init(val)
head = tail
} else {
tail?.next = SinglyListNode.init(val)
tail = tail?.next
}
}// 头插法
func appendToHead(_ val: Int) {
if head == nil {
head = SinglyListNode.init(val)
tail = head
} else {
let temp = SinglyListNode.init(val)
temp.next = head
head = temp
}
}// 用数组来构建单链表
func convertArrayToSinglyList(_ array: [Int]) -> SinglyListNode? {if array.count == 0 {
return nil
}// 尾插法
for value in array {
appendToTail(value)
}return head
}// 用数组来构建 有环的单链表
func convertArrayToSinglyListCycle(_ array: [Int], _ position: Int) -> SinglyListNode? {if array.count == 0 {
return nil
}// 尾插法
varpositionNode: SinglyListNode? = nil
for i in 0..
推荐阅读
- 【生信技能树】R语言练习题|【生信技能树】R语言练习题 - 中级
- java中如何实现重建二叉树
- 种树郭橐驼传(文言句式+古今异义+词类活用+通假字)
- 白杨树
- 08黑龙江迟淑荣弯柳树网络学院第五期学习赵宗瑞老师主讲的(传统文化与身心健康)教育体系心得体会
- [原创]能见沂山一棵树,胜读十年无用书!
- 涵养字外功
- 2018.07.07《刺杀骑士团长》村上春树
- 二叉树路径节点关键值和等于目标值(LeetCode--112&LeetCode--113)
- 撒哈拉沙漠-三毛