Skip to content

Commit 8ffd93f

Browse files
committed
8-14-2020
1 parent 6adf419 commit 8ffd93f

File tree

3 files changed

+75
-0
lines changed

3 files changed

+75
-0
lines changed

src/_0101_symmetric_tree.rs

Lines changed: 42 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,42 @@
1+
struct Solution;
2+
use crate::util::*;
3+
use std::cell::RefCell;
4+
use std::rc::Rc;
5+
impl Solution {
6+
pub fn is_symmetric(root: Option<Rc<RefCell<TreeNode>>>) -> bool {
7+
if let Some(node) = root {
8+
let node = node.borrow();
9+
return Self::is_mirror(&node.left, &node.right);
10+
}
11+
true
12+
}
13+
14+
fn is_mirror(
15+
node1: &Option<Rc<RefCell<TreeNode>>>,
16+
node2: &Option<Rc<RefCell<TreeNode>>>,
17+
) -> bool {
18+
match (node1, node2) {
19+
(Some(n1), Some(n2)) => {
20+
if n1.borrow().val != n2.borrow().val {
21+
return false;
22+
}
23+
return Self::is_mirror(&n1.borrow().left, &n2.borrow().right)
24+
&& Self::is_mirror(&n1.borrow().right, &n2.borrow().left);
25+
}
26+
(None, None) => true,
27+
_ => false,
28+
}
29+
}
30+
}
31+
32+
#[test]
33+
fn test() {
34+
assert_eq!(
35+
Solution::is_symmetric(tree!(
36+
1,
37+
tree!(2, tree!(3), tree!(4)),
38+
tree!(2, tree!(4), tree!(3))
39+
)),
40+
true
41+
);
42+
}

src/_0234_palindrome_linked_list.rs

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
struct Solution;
2+
use rustgym::util::*;
3+
4+
impl Solution {
5+
pub fn is_palindrome(head: Option<Box<ListNode>>) -> bool {
6+
let mut h_numbers: Vec<i32> = vec![];
7+
let mut h_next = &head;
8+
9+
while let Some(h_node) = h_next {
10+
h_numbers.push(h_node.val);
11+
h_next = &h_node.next;
12+
}
13+
let length = h_numbers.len();
14+
for i in 0..length / 2 {
15+
if h_numbers[i] != h_numbers[length - 1 - i] {
16+
return false;
17+
}
18+
}
19+
return true;
20+
}
21+
}
22+
23+
#[test]
24+
fn test() {
25+
assert_eq!(Solution::is_palindrome(list!(1, 2)), false);
26+
assert_eq!(Solution::is_palindrome(list!(1, 2, 2, 1)), true);
27+
}

src/lib.rs

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -62,6 +62,8 @@ mod _0083_remove_duplicates_from_sorted_list;
6262
//
6363
mod _0088_merge_sorted_array;
6464
//
65+
mod _0101_symmetric_tree;
66+
//
6567
mod _0121_best_time_to_buy_and_sell_stock;
6668
//
6769
mod _0125_valid_palindrome;
@@ -94,6 +96,8 @@ mod _0210_course_schedule_ii;
9496
//
9597
mod _0219_contains_duplicate_ii;
9698
//
99+
mod _0234_palindrome_linked_list;
100+
//
97101
mod _0238_product_of_array_except_self;
98102
//
99103
mod _0242_valid_anagram;
@@ -148,6 +152,8 @@ mod _0520_detect_capital;
148152
//
149153
mod _0532_kdiff_pairs_in_an_array;
150154
//
155+
mod _0543_diameter_of_binary_tree;
156+
//
151157
mod _0556_next_greater_element_iii;
152158
//
153159
mod _0557_reverse_words_in_a_string_iii;

0 commit comments

Comments
 (0)