feat: add rust codes for linked_list and my_list (#408)

* feat: add rust codes for linked_list

* feat: add rust codes for my_list

* Update linked_list.rs

* Update print_util.rs

---------

Co-authored-by: Yudong Jin <krahets@163.com>
This commit is contained in:
sjinzh
2023-03-12 02:48:44 +08:00
committed by GitHub
parent bbef87ccfe
commit 050b922f8a
7 changed files with 282 additions and 2 deletions
+10
View File
@@ -9,6 +9,7 @@ use std::fmt::Display;
use std::collections::{HashMap, VecDeque};
use std::rc::Rc;
use crate::list_node::ListNode;
use crate::tree_node::TreeNode;
struct Trunk<'a, 'b> {
@@ -43,6 +44,15 @@ pub fn print_queue<T: Display>(queue: &VecDeque<T>) {
print!("{}{}", data, if i == queue.len() - 1 {"]"} else {", "} );
}
}
/* Print a linked list */
pub fn print_linked_list<T: Display>(head: &Rc<RefCell<ListNode<T>>>) {
print!("{}{}", head.borrow().val, if head.borrow().next.is_none() {"\n"} else {" -> "});
if let Some(node) = &head.borrow().next {
return print_linked_list(node);
}
}
pub fn print_tree(root: &Rc<RefCell<TreeNode>>) {
_print_tree(Some(root), None, false);
}