leetcode 98. Validate Binary Search Tree
Posted 哈哈哈
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了leetcode 98. Validate Binary Search Tree相关的知识,希望对你有一定的参考价值。
最简单的想法,中序遍历二叉树:
- 递归中序遍历二叉树,得到一个中序遍历的序列
- 判断这个序列是不是有序
class Solution { public: void midTree(TreeNode * root, vector<int> & list) { if(root->left==NULL&&root->right==NULL) { list.push_back(root->val); return; } if(root->left) midTree(root->left,list); list.push_back(root->val); if(root->right) midTree(root->right,list); } bool isValidBST(TreeNode* root) { vector<int> list; if(root==NULL) return true; midTree(root,list); for(int i=0;i<list.size()-1;i++) { cout<<list[i]<<endl; if(list[i+1]<=list[i]) return false; } return true; } };
或者直接判断:
- 中序遍历,后面的节点要比前面遍历的节点值大
class Solution { // make sure it meets the BST not only at this level, // but also previous level // in-order access could produce a ascending order list // DFS bool helper(TreeNode * root) { if (root == NULL) { return true; } if (!helper(root->left)) { return false; } if (prev != NULL && prev->val >= root->val) { return false; } prev = root; return helper(root->right); } public: TreeNode* prev = NULL; bool isValidBST(TreeNode* root) { return helper(root); } };
以上是关于leetcode 98. Validate Binary Search Tree的主要内容,如果未能解决你的问题,请参考以下文章
Leetcode 98. Validate Binary Search Tree
leetcode 98 - Validate Binary Search Tree
Leetcode 98. Validate Binary Search Tree
leetcode [98]Validate Binary Search Tree