如何 运行 本地 TreeNode python
How to run TreeNode locally python
我有一个非常愚蠢的问题,我的头脑似乎无法解决。
我想在本地而不是在 leetcode 上进行测试。我如何 运行 这个?
# Definition for a binary tree node.
class TreeNode:
def __init__(self, val=0, left=None, right=None):
self.val = val
self.left = left
self.right = right
class Solution(object):
def preorderTraversal(self, root):
"""
:type root: TreeNode
:rtype: List[int]
"""
if root is None:
return []
stack, output = [root, ], []
while stack:
root = stack.pop()
if root is not None:
output.append(root.val) # Error here
if root.right is not None:
stack.append(root.right)
if root.left is not None:
stack.append(root.left)
return output
我的尝试是:
input = [1,None,2,3]
s = Solution()
print(s.preorderTraversal(input))
但我收到错误消息:
AttributeError: 'list' object has no attribute 'val'
一些代码挑战网站,例如 Leet Code,会将列表输入(实际上是具有 JSON 符号的 text 输入)转换为 TreeNode
,并将 that 作为参数传递给包含您的解决方案代码的函数。
当您想 运行 本地解决方案时,您必须自己处理此转换。为此,您可以使用此功能——特别适用于二叉树:
def fromlist(values):
def create(it):
value = next(it)
return None if value is None else TreeNode(value)
if not values:
return None
it = iter(values)
root = TreeNode(next(it))
nextlevel = [root]
try:
while nextlevel:
level = nextlevel
nextlevel = []
for node in level:
if node:
node.left = create(it)
node.right = create(it)
nextlevel += [node.left, node.right]
except StopIteration:
return root
raise ValueError("Invalid list")
对于你的情况,你可以这样称呼它:
input = [1,None,2,3]
s = Solution()
print(s.preorderTraversal(fromlist(input)))
我有一个非常愚蠢的问题,我的头脑似乎无法解决。 我想在本地而不是在 leetcode 上进行测试。我如何 运行 这个?
# Definition for a binary tree node.
class TreeNode:
def __init__(self, val=0, left=None, right=None):
self.val = val
self.left = left
self.right = right
class Solution(object):
def preorderTraversal(self, root):
"""
:type root: TreeNode
:rtype: List[int]
"""
if root is None:
return []
stack, output = [root, ], []
while stack:
root = stack.pop()
if root is not None:
output.append(root.val) # Error here
if root.right is not None:
stack.append(root.right)
if root.left is not None:
stack.append(root.left)
return output
我的尝试是:
input = [1,None,2,3]
s = Solution()
print(s.preorderTraversal(input))
但我收到错误消息:
AttributeError: 'list' object has no attribute 'val'
一些代码挑战网站,例如 Leet Code,会将列表输入(实际上是具有 JSON 符号的 text 输入)转换为 TreeNode
,并将 that 作为参数传递给包含您的解决方案代码的函数。
当您想 运行 本地解决方案时,您必须自己处理此转换。为此,您可以使用此功能——特别适用于二叉树:
def fromlist(values):
def create(it):
value = next(it)
return None if value is None else TreeNode(value)
if not values:
return None
it = iter(values)
root = TreeNode(next(it))
nextlevel = [root]
try:
while nextlevel:
level = nextlevel
nextlevel = []
for node in level:
if node:
node.left = create(it)
node.right = create(it)
nextlevel += [node.left, node.right]
except StopIteration:
return root
raise ValueError("Invalid list")
对于你的情况,你可以这样称呼它:
input = [1,None,2,3]
s = Solution()
print(s.preorderTraversal(fromlist(input)))