leetcode第六周解题总结(98)
2017-04-08 00:22
246 查看
98. Validate Binary Search Tree
Given a binary tree, determine if it is a valid binary search tree (BST).Assume a BST is defined as follows:
The left subtree of a node contains only nodes with keys less than the node’s key.
The right subtree of a node contains only nodes with keys greater than the node’s key.
Both the left and right subtrees must also be binary search trees.
题意解析:
判断是否为合法的二叉搜索树,三个条件:
一个节点的左子树只含有比当前节点小的值
一个节点的右子树只含有比当前节点大的值
左子树和右子树也必须是二叉搜索树
解题思路:
中序遍历。
/** * Definition for a binary tree node. * struct TreeNode { * int val; * TreeNode *left; * TreeNode *right; * TreeNode(int x) : val(x), left(NULL), right(NULL) {} * }; */ class Solution { public: vector<int> a; bool isValidBST(TreeNode* root) { if(root == NULL) return true; if(root -> left == NULL && root->right == NULL) return true; inorder(root); for(int i = 0; i < a.size() - 1; i ++) { if (a[i] >= a[i + 1]) { return false; } } return true; } vector<int> inorder(TreeNode* root) { if(root->left != NULL) { inorder(root->left); } a.push_back(root->val); if(root->right != NULL) { inorder(root->right); } return a; } };
相关文章推荐
- leetcode -- 解题总结--DP与DFS, 递归
- Leetcode解题思路总结(Medium)
- leetcode第十四周解题总结--二分查找
- LeetCode解题报告--2Sum, 3Sum, 4Sum, K Sum求和问题总结
- leetcode第十八周解题总结-贪心算法
- Leetcode解题思想总结篇:双指针
- leetcode第十二周解题总结--动态规划
- leetcode第十一周解题总结(155,150,20)--栈
- Leetcode解题思路总结(Easy)
- leetcode第四周解题总结(9,21,2,24)
- leetcode第三周解题总结(5,7,66)
- leetcode第十三周解题总结--动态规划(二)
- leetcode第八周解题总结
- Leetcode解题思路总结(Easy)
- leetcode第二周解题总结(3,8,65)
- leetcode第六周解题报告
- leetcode第十六周解题总结--图
- leetcode第十周解题总结
- leetcode第十五周解题总结--二分查找(二)
- leetcode第一周解题总结(1,28,125,151,167)