235(最近公共祖先)

/**
* 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:
TreeNode* lowestCommonAncestor(TreeNode* root, TreeNode* p, TreeNode* q) {
if (root==NULL)
return 0; if(p->val<root->val&&q->val<root->val)
return lowestCommonAncestor(root->left,p,q);
if(p->val>root->val&&q->val>root->val)
return lowestCommonAncestor(root->right,p,q);
return root;
}
};

236(任意二叉树,不是二叉搜索树)

98(验证是否为二叉搜索树)

法一:直接采用自身性质,左<中<右

/**
* 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:
bool isValidBST(TreeNode* root) {
return isValidBST(root,LONG_MIN,LONG_MAX);
} bool isValidBST(TreeNode *root,long mn,long mx){
if(!root) return true;
if(root->val<=mn||root->val>=mx) return false;
return isValidBST(root->left,mn,root->val)&&isValidBST(root->right,root->val,mx);
}
};

法二:采用中序遍历来验证

/**
* 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:
bool isPre = false;
int pre = -1; bool isValidBST(TreeNode* root) {
return inOrder(root);
} bool inOrder(TreeNode* node){
if(node == NULL)
return true; if(!inOrder(node->left))
return false; if(isPre && pre >= node->val)
return false; isPre = true;
pre = node->val; if(!inOrder(node->right))
return false; return true;
}
};

450

108

230

236(任意二叉树,不是二叉搜索树)

最新文章

  1. 利用节点更改table内容
  2. CodeForces 540
  3. ABAP下载txt文件
  4. Python 装饰器学习
  5. java语言一维数组,对象数组
  6. GCD的简单封装
  7. 同样版本的jstl,都是jstl1.2版本,有个有问题,另一个没有问题
  8. h.264并行解码算法3D-Wave实现(基于多核共享内存系统)
  9. XMLHttpRequest取得响应
  10. linux-telnet服务配置
  11. JavaScript小知识点(一)
  12. Android ADT安装时卡在Calculating requirements and dependencies
  13. oracle使用 extract获取当前时间,并比较两个时间
  14. oracle传输表空间相关
  15. bootstrap-table 刷新页面数据
  16. pilicat-dfs 霹雳猫-分布式文件系统
  17. 【python】变量的赋值、深浅拷贝
  18. linux每日命令(34):ps命令和pstree命令
  19. 【Alpha版本】冲刺阶段——Day6
  20. Codeforces Round #427 (Div. 2) Problem C Star sky (Codeforces 835C) - 前缀和

热门文章

  1. iOS 获取全局唯一标示符
  2. 20175203 2018-2019 实验三 《敏捷开发与XP实践》
  3. (转)JVM运行时数据区
  4. 题解 P1017 【进制转换】
  5. oo前三次作业博客总结
  6. 转 : jconsole 和jvisualVM 监控远程 spring boot程序
  7. bstToDoublyList
  8. ubuntu下MySQL的安装及远程连接配置(转)
  9. SVD和SVD++
  10. 实用js片段