问题遇到的现象和发生背景
Coursera UCSD 课程 Data Structure上,判断一个给定树是否为二叉搜索树,我的代码编译能通过、大部分测试都没有问题,但是提交的时候报错:unknown signal 11,改写代码后(思路不变),编译即通过。
问题相关代码,请勿粘贴截图
#!/usr/bin/python3
import sys, threading
sys.setrecursionlimit(10**7) # max depth of recursion
threading.stack_size(2**25) # new thread will get stack of such size
class Solution(object):
def construct(self):
self.n = int(sys.stdin.readline().strip())
self.key = [0 for i in range(self.n)]
self.left = [0 for i in range(self.n)]
self.right = [0 for i in range(self.n)]
self.in_order = []
self.sign = True
for i in range(self.n):
[a, b, c] = map(int, sys.stdin.readline().split())
self.key[i], self.left[i], self.right[i] = a, b, c
def in_order_traversal(self, i):
if i != -1:
self.in_order_traversal(self.left[i])
self.in_order.append(self.key[i])
# if len(self.in_order) > 1 and self.in_order[-1] <= self.in_order[-2]:
# self.sign = False
# return
self.in_order_traversal(self.right[i])
def is_binary_search_tree(self, i):
self.in_order_traversal(i)
for a in range(len(self.in_order) - 1):
prev = self.in_order[a]
curr = self.in_order[a + 1]
if curr <= prev:
return False
return True
def main():
# nodes = int(sys.stdin.readline().strip())
tree = Solution()
tree.construct()
if tree.n == 0:
print("CORRECT")
return
# tree.in_order_traversal(0)
# for i in range(nodes):
# tree.append(list(map(int, sys.stdin.readline().strip().split())))
if tree.is_binary_search_tree(0):
print("CORRECT")
else:
print("INCORRECT")
threading.Thread(target=main).start()