File tree 2 files changed +63
-0
lines changed
2 files changed +63
-0
lines changed Original file line number Diff line number Diff line change
1
+ """
2
+ Definition of TreeNode:
3
+ """
4
+ class TreeNode :
5
+ def __init__ (self , val ):
6
+ self .val = val
7
+ self .left , self .right = None , None
8
+
9
+ class Solution :
10
+ """
11
+ @param root: A Tree
12
+ @return: Preorder in ArrayList which contains node values.
13
+ """
14
+ def preorderTraversal (self , root ):
15
+ if root == None :
16
+ return []
17
+ # write your code here
18
+ arr = []
19
+ stack = []
20
+ stack .append (root )
21
+ tmp = root
22
+ while len (stack ) != 0 :
23
+ tmp = stack [- 1 ]
24
+ arr .append (tmp .val )
25
+ stack .pop ()
26
+ if tmp .right :
27
+ stack .append (tmp .right )
28
+ if tmp .left :
29
+ stack .append (tmp .left )
30
+ return arr
31
+
32
+
Original file line number Diff line number Diff line change
1
+ """
2
+ Definition of TreeNode:
3
+ """
4
+ class TreeNode :
5
+ def __init__ (self , val ):
6
+ self .val = val
7
+ self .left , self .right = None , None
8
+
9
+ class Solution :
10
+ """
11
+ @param root: The root of binary tree.
12
+ @return: True if the binary tree is BST, or false
13
+ """
14
+ def isValidBST (self , root ):
15
+ # write your code here
16
+ if root == None :
17
+ return True
18
+ res = []
19
+ res = Solution .midTraverse (root , root , res )
20
+ for i in range (len (res ) - 1 ):
21
+ if res [i ] >= res [i + 1 ]:
22
+ return False
23
+ return True
24
+
25
+ def midTraverse (self , root , res_arr ):
26
+ if root == None :
27
+ return res_arr
28
+ res_arr = Solution .midTraverse (root , root .left , res_arr )
29
+ res_arr .append (root .val )
30
+ res_arr = Solution .midTraverse (root , root .right , res_arr )
31
+ return res_arr
You can’t perform that action at this time.
0 commit comments