프로그래밍/HackerRank
[HackerRank][Python3] Is This a Binary Search Tree?
snoopybox
2018. 6. 25. 01:38
Problem :
https://www.hackerrank.com/challenges/is-binary-search-tree/problem
My Solution :
#!/usr/bin/env python3
""" Node is defined as
class node:
def __init__(self, data):
self.data = data
self.left = None
self.right = None
"""
def check_binary_search_tree_(root, m=-1, M=10001):
if root == None:
return True
if root.left:
if not (m < root.left.data < root.data):
return False
if root.right:
if not (root.data < root.right.data < M):
return False
return check_binary_search_tree_(root.left, m, root.data) and \
check_binary_search_tree_(root.right, root.data, M)
My Solution2 :
중위 순회를 이용한 방법
#!/usr/bin/env python3
""" Node is defined as
class node:
def __init__(self, data):
self.data = data
self.left = None
self.right = None
"""
last = -1
def check_binary_search_tree_(root):
global last
if not root:
return True
if not check_binary_search_tree_(root.left):
return False
if last >= root.data:
return False
last = root.data
if not check_binary_search_tree_(root.right):
return False
return True