计算叶节点数
(&self)
| 86 | |
| 87 | // 计算叶节点数 |
| 88 | fn leaf_size(&self) -> usize { |
| 89 | match self { |
| 90 | Null => 0, |
| 91 | Tree(node) => { |
| 92 | if node.left == Null && node.right == Null { |
| 93 | return 1; |
| 94 | } |
| 95 | |
| 96 | let left_leaf = match node.left { |
| 97 | Null => 0, |
| 98 | _ => node.left.leaf_size(), |
| 99 | }; |
| 100 | let right_leaf = match node.right { |
| 101 | Null => 0, |
| 102 | _ => node.right.leaf_size(), |
| 103 | }; |
| 104 | |
| 105 | left_leaf + right_leaf |
| 106 | }, |
| 107 | } |
| 108 | } |
| 109 | |
| 110 | // 计算非叶节点数 |
| 111 | fn none_leaf_size(&self) -> usize { |