@@ -302,8 +302,8 @@ func evaluateTree(root *TreeNode) bool {
302
302
303
303
function evaluateTree(root : TreeNode | null ): boolean {
304
304
const { val, left, right } = root ;
305
- if (left == null && right == null ) {
306
- return !! val ;
305
+ if (left == null ) {
306
+ return val === 1 ;
307
307
}
308
308
if (val === 2 ) {
309
309
return evaluateTree (left ) || evaluateTree (right );
@@ -312,6 +312,69 @@ function evaluateTree(root: TreeNode | null): boolean {
312
312
}
313
313
```
314
314
315
+ ### ** Rust**
316
+
317
+ ``` rust
318
+ // Definition for a binary tree node.
319
+ // #[derive(Debug, PartialEq, Eq)]
320
+ // pub struct TreeNode {
321
+ // pub val: i32,
322
+ // pub left: Option<Rc<RefCell<TreeNode>>>,
323
+ // pub right: Option<Rc<RefCell<TreeNode>>>,
324
+ // }
325
+ //
326
+ // impl TreeNode {
327
+ // #[inline]
328
+ // pub fn new(val: i32) -> Self {
329
+ // TreeNode {
330
+ // val,
331
+ // left: None,
332
+ // right: None
333
+ // }
334
+ // }
335
+ // }
336
+ use std :: rc :: Rc ;
337
+ use std :: cell :: RefCell ;
338
+ impl Solution {
339
+ fn dfs (root : & Option <Rc <RefCell <TreeNode >>>) -> bool {
340
+ let root = root . as_ref (). unwrap (). as_ref (). borrow ();
341
+ if root . left. is_none () {
342
+ return root . val == 1 ;
343
+ }
344
+ if root . val == 2 {
345
+ return Self :: dfs (& root . left) || Self :: dfs (& root . right);
346
+ }
347
+ Self :: dfs (& root . left) && Self :: dfs (& root . right)
348
+ }
349
+
350
+ pub fn evaluate_tree (root : Option <Rc <RefCell <TreeNode >>>) -> bool {
351
+ Self :: dfs (& root )
352
+ }
353
+ }
354
+ ```
355
+
356
+ ### ** C**
357
+
358
+ ``` c
359
+ /* *
360
+ * Definition for a binary tree node.
361
+ * struct TreeNode {
362
+ * int val;
363
+ * struct TreeNode *left;
364
+ * struct TreeNode *right;
365
+ * };
366
+ */
367
+ bool evaluateTree (struct TreeNode * root) {
368
+ if (!root->left) {
369
+ return root->val == 1;
370
+ }
371
+ if (root->val == 2) {
372
+ return evaluateTree(root->left) || evaluateTree(root->right);
373
+ }
374
+ return evaluateTree(root->left) && evaluateTree(root->right);
375
+ }
376
+ ```
377
+
315
378
### **...**
316
379
317
380
```
0 commit comments