Linked Listのトラバーサルの方法で質問です
Linked ListをPython3実装し、トラバーサルの実装方法で質問です
下記のような前提条件があったとします。
前提条件
Linked Listのノードクラス
class Node:
def __init__(self, x):
self.val = x
self.next = None
# 初期化
node = Node(1)
node.next = Node(2)
node.next.next = Node(3)
質問
ノードをたどっていく下記の二方法の実装ではどのような違いがありますか?
方法1
while node:
node = node.next
方法2
while node is not None:
node = node.next
補足
nodeがNoneでないことを素直に実装すると方法2になると思います。
ですが、LeetCodeやAOJ, AtCoderなどで他の人が実装したLinked Listを見ると、
たいてい方法1で実装しています。もし方法1でも方法2と同じ挙動なら方法1のほうが短くていいなと思っています。