競技プログラミングのサイトの問題を解いています。しかし、どうも、以下の問題で期待どおりのアウトプットをだせません。クラスの使い方について根本的に間違っているかもしれないと不安になり質問しました。
質問するのもお恥ずかしいぐらい基本的なことだとは思うのですが、お気づきの点ありましたらご指摘頂きますでしょうか?
以下のコードで、その競技プログラミングの方で組み込まれているテストコードは、通ります。
Write a function to delete a node (except the tail) in a singly linked list, given only access to that node.
Given linked list -- head = [4,5,1,9], which looks like following:
(出典元: https://leetcode.com/explore/interview/card/top-interview-questions-easy/93/linked-list/553/)
Input: head = [4,5,1,9], node = 5
Output: [4,1,9]
# Definition for singly-linked list. class ListNode: def __init__(self, x): self.val = x self.next = None class Solution: def deleteNode(self, node): """ :type node: ListNode :rtype: void Do not return anything, modify node in-place instead. """ if node and node.next: node.val = node.next.val node.next = node.next.next
(出典元: https://leetcode.com/explore/interview/card/top-interview-questions-easy/93/linked-list/553/)
実際に実行した結果
head = [4,5,1,9] node = 5 listnode = ListNode(head) Solution.deleteNode(listnode, node) <ipython-input-298-b888872efe5d> in deleteNode(self, node) 1 class Solution: 2 def deleteNode(self, node): ----> 3 node.val = node.next.val 4 node.next = node.next.next 5 AttributeError: 'int' object has no attribute 'next'