2017-07-19 10 views
0

私はLeetcodeの問題の1つ(問題21)に取り組んでいました。 2つのソートされたリンクリストをマージして新しいリストとして返すように要求し、このような型付きのコードを与えます。どのようにself.next = Noneはl1の次の値を取得しますか?

# Definition for singly-linked list. 
# class ListNode(object): 
#  def __init__(self, x): 
#   self.val = x 
#   self.next = None 

class Solution(object): 
    def mergeTwoLists(self, l1, l2): 
     """ 
     :type l1: ListNode 
     :type l2: ListNode 
     :rtype: ListNode 
     """ 

マージ問題を正式に解決する前にいくつかのテストを行いました。私は次のように入力L1:

l1 = [1,2,3,4,5] 

と私はにコードを変更:出力を示し

class Solution(object): 
    def mergeTwoLists(self, l1, l2): 
     print(l1.val) 
     print(l1.next.val) 

1 
2 

私を混同部分が機能self.nextが行う方法です私が入力したListNodeの次の値を取得します。私の理解では、self.nextはNoneに設定されているので、l1.nextはNoneに、None.valは正しくなくてはなりません。誰かが私にこれを手伝ってもらえますか?

ここには、コード、入力、および出力を示す2つの画像があります。

enter image description here

また、ここで私は私の問題を取得するリンクです。 Noneが新しいListNodenextのデフォルト値であることを https://leetcode.com/problems/merge-two-sorted-lists/#/description

+0

はStackOverflowのへようこそ。ヘルプドキュメントの投稿ガイドラインを読み、それに従ってください。 [最小、完全で検証可能な例](http://stackoverflow.com/help/mcve)がここに適用されます。 MCVEコードを投稿して問題を正確に記述するまでは、効果的にお手伝いすることはできません。 投稿したコードをテキストファイルに貼り付け、説明した問題を再現できるはずです。 – Prune

+0

私はあなたが本当にそのような定期的なリストをあなたの関数に渡し、あなたが引用した出力を得たと懐疑的です。 '([1、2、3、4、5]).val'はAttributeErrorを生成します。 – Alex

答えて

2

。他のListNodeは、nextに割り当てられた他の値を持つことができます。適切ListNodesリストをリンク構築することは、各ノードのリンクパラメータに次のノードへの参照を割り当てる必要:

l1 = ListNode(1) 
l2 = ListNode(2) 
l3 = ListNode(3) 
l4 = ListNode(4) 
l5 = ListNode(5) 

l1.next = l2 
l2.next = l3 
l3.next = l4 
l4.next = l5 
+0

私に返信ありがとうございます。私は定期的なリストを渡しました。私は自分の入力と出力を示す質問と私が問題を持っているウェブサイトに写真をアップロードしました。たぶんあなたはそれを見ることができます。私はあなたの説明を理解していますが、混乱しているのはl1.next = l2を設定していないことです。l1.next.valと入力すると2番目の値が得られます。 – Root

+0

私はそのサイトにアカウントを持っていないのであなたの画像を再現できません。私は '[1,2,3,4,5]'と言っているときには、実際にリンクリスト表現を使用していることを意味しています。つまり、 'l1.next = l2'はあなたのためです。他の言語には '[1,2,3,4,5]'といっていますか? – Alex

+0

意味があります。彼らは私が特定のフォーマットに入力した入力を変更するかもしれません。助けてくれてありがとう。 – Root

関連する問題