Rc<T>는 strong count가 0이 되어야 값을 해제한다.
양방향을 모두 strong으로 잡으면 서로를 살려 두는 순환 참조가 생긴다.
소유권은 아래로 `Rc`, 탐색용 역참조는 위로 `Weak`를 사용한다.
children: Vec<Rc<Node>>
parent: Rc<Node>라면 부모도 소유
leaf.parent 때문에 strong이 남음
branch.children 때문에 strong이 남음
둘 다 0이 되지 않아 해제 불가
자식을 `Rc`로 소유하고 수명을 결정
parent: RefCell<Weak<Node>>
strong이 아니라 weak count만 증가
살아 있을 때만 `Some(Rc)` 반환
strong 0이면 weak가 있어도 해제