diff --git a/problems/0530.二叉搜索树的最小绝对差.md b/problems/0530.二叉搜索树的最小绝对差.md index ad4f46d8..d1c1e1d4 100644 --- a/problems/0530.二叉搜索树的最小绝对差.md +++ b/problems/0530.二叉搜索树的最小绝对差.md @@ -515,6 +515,35 @@ object Solution { } ``` +## rust + +构建二叉树的有序数组: + +```rust +use std::cell::RefCell; +use std::rc::Rc; +impl Solution { + pub fn get_minimum_difference(root: Option>>) -> i32 { + let mut vec = vec![]; + Self::traversal(root, &mut vec); + let mut min = i32::MAX; + for i in 1..vec.len() { + min = min.min(vec[i] - vec[i - 1]) + } + min + } + pub fn traversal(root: Option>>, v: &mut Vec) { + if root.is_none() { + return; + } + let node = root.as_ref().unwrap().borrow(); + Self::traversal(node.left.clone(), v); + v.push(node.val); + Self::traversal(node.right.clone(), v); + } +} +``` +