質問したいこと
Leetcode 19. Remove Nth Node From End of Listを解いているときに思った質問で、なかなか理解ができなかったので質問させてください。質問はこの問題に関するものではありません。
この関数を実行する際にlastという変数を作りheadを代入したのち、last.nextのNodeを削除するというものですが、lastはあくまでTempの変数であって、Tempの変数を操作しているため、Headには何も影響がないと思っているのですが、コンソールに出力してみるとHeadまで値が変わっております。この現象を調べてみたのですが、なぜなのかさっぱりわかりません。
お手数ですが、宜しくお願い致します。何か説明がなされているソース等も幸いです。
該当のソースコード
python3
1# Definition for singly-linked list. 2# class ListNode: 3# def __init__(self, val=0, next=None): 4# self.val = val 5# self.next = next 6class Solution: 7 def removeNthFromEnd(self, head: Optional[ListNode], n: int) -> Optional[ListNode]: 8 last = head 9 print(head) 10 last.next = last.next.next 11 print(head) 12
エラーメッセージ
console
1# 最初に出力したhead 2ListNode{val: 1, next: ListNode{val: 2, next: ListNode{val: 3, next: None}}} 3# 最後に出力したhead 4ListNode{val: 1, next: ListNode{val: 3, next: None}} 5 6 7 8 9 10 11 12
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2022/01/10 10:14