leetcode: 114. 이 진 트 리 가 링크 로 펼 쳐 집 니 다 (자바)
1172 단어 알고리즘 시험 문제(java)
이 진 트 리
1
/ \
2 5
/ \ \
3 4 6
다음으로 펼 치기:
1
\
2
\
3
\
4
\
5
\
6
public void flatten(TreeNode root) {
if (root == null) return;
if (root.left == null && root.right == null) return;
//如果右子树为空左子树不为空
if (root.left != null && root.right == null) {
root.right = root.left;
root.left = null;
}
//如果右子树不为空左子树为空对右子树进行递归
if (root.left == null && root.right != null) {
flatten(root.right);
return;
}
//如果左右子树都不为空左右子树分别递归 递归完把左子树加进到右子树中
if (root.left != null && root.right != null) {
flatten(root.left);
flatten(root.right);
TreeNode left = root.left;
TreeNode right = root.right;
root.right = left;
while (left.right != null) {
left = left.right;
}
left.right = right;
root.left = null;
}
}
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
leetcode: 77. 조합 (자바 딥 검색 (dfs) + 가지치기)텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.