그냥 다 뽑아낸다음 x2하고 스트링으로 바꿔서 한자리씩 노드생성하기
정답
class Solution {
fun doubleIt(head: ListNode?): ListNode? {
var curNode=requireNotNull(head)
var tempValue=""
while (true){
tempValue+=curNode.`val`.toString()
if (curNode.next==null){
break
}
curNode=curNode.next!!
}
val resStr = (tempValue.toBigDecimal() * BigDecimal(2)).toString()
var prevNode=ListNode(resStr[0].digitToInt())
val resNode=prevNode
for (i in resStr.substring(1,resStr.length)){
val tempNode=ListNode(i.digitToInt())
prevNode.next=tempNode
prevNode=tempNode
}
return resNode
}
}
class ListNode(var `val`: Int) {
var next: ListNode? = null
}
'알고리즘' 카테고리의 다른 글
릿코드 786. K-th Smallest Prime Fraction 코틀린 (0) | 2024.05.10 |
---|---|
릿코드 506. Relative Ranks 코틀린 (0) | 2024.05.08 |
릿코드 237. Delete Node in a Linked List 코틀린 (0) | 2024.05.05 |
릿코드 881. Boats to Save People 코틀린 (0) | 2024.05.04 |
릿코드 165. Compare Version Numbers 코틀린 (0) | 2024.05.03 |