// 尋找鏈表的中間結(jié)點
func HW2023019() {
var listArr: [String] = []
// 測試用例
// let line1 = "00100 4"
// listArr = ["00000 4 -1", "00100 1 12309", "33218 3 00000", "12309 2 33218"]
// let line1 = "10000 3"
// listArr = ["76892 7 12309", "12309 5 -1", "10000 1 76892"]
// 開始代碼
let line1 = String(readLine()!)
let inputArr = line1.components(separatedBy: " ")
while let line = readLine() {
listArr.append(String(line))
}
var nodeArr: [[String]] = []
var headNode: Node? = nil
for str in listArr {
let temp = str.components(separatedBy: " ")
if String(temp[0]) == String(inputArr[0]) {
let nextNode: Node = Node.init(String(temp[2]), 0, Node())
// 頭部節(jié)點
headNode = Node.init(String(temp[0]), Int(temp[1])!, nextNode)
}else {
nodeArr.append(temp)
}
}
var node = headNode
while node?.next?.addr != nil && node?.next?.data != nil {
let addr = node?.next?.addr
for (i,str) in nodeArr.enumerated() {
if str[0] == addr {
var nextNode: Node? = nil
if str[2] != "-1" {
nextNode = Node.init(str[2], 0, Node())
}
node?.next = Node.init(String(str[0]), Int(str[1])!, nextNode ?? Node())
node = node?.next
nodeArr.remove(at: i)
break
}
}
}
var fast: Node? = headNode // 快指針走兩步
var slow: Node? = headNode // 慢指針走一步
while fast != nil && fast?.next != nil {
slow = slow?.next
fast = fast?.next?.next
}
print(slow?.data ?? -1)
}
class Node {
var addr: String?
var data: Int?
var next: Node?
public init() {
self.addr = nil
self.data = nil
self.next = nil
}
public init(_ addr: String?, _ data: Int?, _ next: Node?) {
self.addr = addr
self.data = data
self.next = next
}
}
華為OD機試真題2023_Swift_100_尋找鏈表的中間結(jié)點
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
- 文/潘曉璐 我一進店門鱼辙,熙熙樓的掌柜王于貴愁眉苦臉地迎上來廉嚼,“玉大人,你說我怎么就攤上這事倒戏〉≡耄” “怎么了?”我有些...
- 文/不壞的土叔 我叫張陵杜跷,是天一觀的道長傍念。 經(jīng)常有香客問我,道長葛闷,這世上最難降的妖魔是什么憋槐? 我笑而不...
- 正文 為了忘掉前任,我火速辦了婚禮淑趾,結(jié)果婚禮上阳仔,老公的妹妹穿的比我還像新娘。我一直安慰自己扣泊,他們只是感情好近范,可當我...
- 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著延蟹,像睡著了一般评矩。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上阱飘,一...
- 文/蒼蘭香墨 我猛地睜開眼辨萍,長吁一口氣:“原來是場噩夢啊……” “哼棋恼!你這毒婦竟也來了返弹?” 一聲冷哼從身側(cè)響起,我...
- 正文 年R本政府宣布谈况,位于F島的核電站,受9級特大地震影響递胧,放射性物質(zhì)發(fā)生泄漏碑韵。R本人自食惡果不足惜,卻給世界環(huán)境...
- 文/蒙蒙 一缎脾、第九天 我趴在偏房一處隱蔽的房頂上張望祝闻。 院中可真熱鬧,春花似錦赊锚、人聲如沸治筒。這莊子的主人今日做“春日...
- 文/蒼蘭香墨 我抬頭看了看天上的太陽耸袜。三九已至,卻和暖如春牲平,著一層夾襖步出監(jiān)牢的瞬間堤框,已是汗流浹背。 一陣腳步聲響...
推薦閱讀更多精彩內(nèi)容
- 解題思路雙層 for 循環(huán)將數(shù)組當前下標的左側(cè)和右側(cè)乘積算出來腊嗡,再進行比較着倾,如果相等就將當前下標保存到數(shù)組中,最后...
- 解題思路使用雙層循環(huán)燕少,外層謎面卡者,內(nèi)層謎底1、變序:判斷交換順序后是否相同2客们、去重:判斷兩個字符串去掉重復(fù)字符后是否...
- 解題思路1崇决、統(tǒng)計各字符出現(xiàn)頻次,找到出現(xiàn)頻次最高的字符2底挫、找到最高頻次字符的下標并計算出差值3恒傻、所有差值中最小的就...
- 解題思路1、對報紙字符串和匿名字符串使用空格分隔2凄敢、對分隔后得到兩個數(shù)組分別對其自己的每個元素進行排序3碌冶、對匿名數(shù)...