给定一个二叉搜索树的根结点 root
, 返回树中任意两节点的差的最小值。
示例:
输入: root = [4,2,6,1,3,null,null] 输出: 1 解释: 注意,root是树结点对象(TreeNode object),而不是数组。 给定的树 [4,2,6,1,3,null,null] 可表示为下图: 4 / 2 6 / \ 1 3 最小的差值是 1, 它是节点1和节点2的差值, 也是节点3和节点2的差值。
注意:
- 二叉树的大小范围在
2
到100
。 - 二叉树总是有效的,每个节点的值都是整数,且不重复。
int minDiffInBST(TreeNode* root) { vector<int > res; inorder(root, res); int Min = 65535; for (int i = 0; i<res.size() - 1; i++){ Min = min(Min, res[i + 1] - res[i]); } return Min; } TreeNode * inorder(TreeNode* root, vector<int >&res) { if (root==NULL) return NULL; inorder(root->left, res); res.push_back(root->val); inorder(root->right, res); return root; }
原文地址:https://www.cnblogs.com/binanry/p/9867129.html
时间: 2024-11-08 20:59:56