MCPcopy Create free account
hub / github.com/QMHTMY/RustBook / leaf_size

Method leaf_size

publication/code/chapter08/binary_tree.rs:88–106  ·  view source on GitHub ↗

计算叶节点数

(&self)

Source from the content-addressed store, hash-verified

86
87 // 计算叶节点数
88 fn leaf_size(&self) -> usize {
89 // 都为空,当前节点就是叶节点,返回 1
90 if self.left.is_none() && self.right.is_none() {
91 return 1;
92 }
93
94 // 计算左右子树的叶节点数
95 let left_leaf = match &self.left {
96 Some(left) => left.leaf_size(),
97 None => 0,
98 };
99 let right_leaf = match &self.right {
100 Some(right) => right.leaf_size(),
101 None => 0,
102 };
103
104 // 左右子树叶节点数之和 = 总叶节点数
105 left_leaf + right_leaf
106 }
107
108 // 计算非叶节点数 [千万不要想复杂了]
109 fn none_leaf_size(&self) -> usize {

Callers 1

none_leaf_sizeMethod · 0.45

Calls

no outgoing calls

Tested by

no test coverage detected