【LeetCode】解答前に知っておくと役に立つかもしれない情報【Python】

この記事は約2分で読めます。

 

データ構造

LeetCodeにおける連結リストの各ノードの定義

・解答欄にクラスが定義されている ※実際にはコメントアウトされている

・inputはリスト型に見える

・↑こちらのinputを解答欄でprintしてみると以下のように出力される

分解してみると↓のようになっており、連結リストの先頭は2番目以降の要素を抱えた入れ子構造のようになっている

ListNode(1)のvalは1,nextはListNode(2)のval

ListNode(2)のvalは2,nextはListNode(3)のval

ListNode(3)のvalは3,nextはListNode(4)のval

ListNode(4)のvalは4,nextはListNode(4)のval

ListNode(5)のvalは5,nextはNone

連結リストの作成

何か違う気がする。要確認

連結リストの中央の要素の取得

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

 

slowポインタは毎回1つ、fastポインタは毎回2つ進むことで、

fastポインタが連結リストの終端に到着したときに、slowポインタはちょうど連結リストの中央の要素を持っていることになる。

 

 

二分木

LeetCodeにおける二分木の各ノードの定義

 

 

コメント