- 175 名前:デフォルトの名無しさん [2017/10/26(木) 12:31:04.94 ID:P+s05bng.net]
- fn decrease_level(mut root: Option<Box<Tree>>) -> Option<Box<Tree>> {
if root.is_none() { return root; } let left_level = level(&root.as_ref().unwrap().left); let right_level = level(&root.as_ref().unwrap().right); let mut expected_level = 0; if left_level < right_level { expected_level = left_level + 1 } else { expected_level = right_level + 1 } if expected_level < root.as_ref().unwrap().level { root.as_mut().unwrap().level = expected_level; if root.as_ref().unwrap().right.is_some() { if expected_level < root.as_ref().unwrap().right.as_ref().unwrap().level { root.as_mut().unwrap().right.as_mut().unwrap().level = expected_level; } } } root }
|

|