bool midNode(TreeNode* mid, int min, int max){ if(!mid) return true; if(mid->val <= min || mid->val >= max) return false; if(!midNode(mid->left, min, mid->val)) return false; if(!midNode(mid->right, mid->val, max)) return false; return true; }
bool rightNode(TreeNode* right, int min){ if(!right) return true; if(right->val <= min) return false; if(!rightNode(right->right, right->val)) return false; if(!midNode(right->left, min, right->val)) return false; return true; }
bool leftNode(TreeNode* left, int max){ if(!left) return true; if(left->val >= max) return false; if(!leftNode(left->left, left->val)) return false; if(!midNode(left->right, left->val, max)) return false; return true; }
void main() { int dat; struct linkList *list1 = NULL; InsertLinkedList(&list1, 21, 1); /*Insert node in Beginning */ InsertLinkedList(&list1, 31, 2); /*Insert at position 2 */ InsertLinkedList(&list1, 41, 3); InsertLinkedList(&list1, 51, 4); InsertLinkedList(&list1, 61, 5); InsertLinkedList(&list1, 72, 6); InsertLinkedList(&list1, 87, 7); displayList(list1); printf ( "Mid node of list is %d\n", midNode(list1)); displayList(list1); }