Macro leetcode_trees_rs::right_tree
source · macro_rules! right_tree { ($val:expr) => { ... }; ($val:expr, $right:tt) => { ... }; }
Expand description
§Description
A macro to reduce the boilerplate in generating right-sided only binary trees.
§Match arms
Arm 1:
- Takes the value as an argument.
- Equivalent of doing
TreeNode::new()
. Arm 2: - Takes the value as an argument.
- Also takes a sequence of right only node values as an argument (and builds the
TreeNode
struct with them).
§Example
This code:
use crate::utils::right_tree;
let right_only_tree = right_tree!(1, 2, 3);
Is equivalent to this:
use std::{rc::Rc, cell::RefCell};
use crate::utils::TreeNode;
let right_only_tree = TreeNode {
val: 1,
left: None,
right: Some(Rc::new(RefCell::new(TreeNode {
val: 2,
left: None,
right: Some(Rc::new(RefCell::new(TreeNode {
val: 3,
left: None,
right: None,
})))
})))
};