Leetcode 114. Flatten Binary Tree to Linked List 두 갈래 트리를 체인 테이블로 확장합니다.
제목:
두 갈래 나무를 정해 제자리에서 체인 시계로 펼치세요.
예를 들어, 지정된 두 갈래 트리
1
/ \
2 5
/ \ \
3 4 6
다음으로 확장:
1
\
2
\
3
\
4
\
5
\
6
문제 해결 방법:
데이터 접근 순서는 앞의 순서를 두루 훑어보고 귀속할 수도 있고 교체할 수도 있으며 오른쪽 노드를 체인 테이블의next로 사용합니다.
시간 복잡도 O(n), 공간 복잡도 O(logn).
코드 구현:
/**
* Definition for a binary tree node.
* public class TreeNode {
* int val;
* TreeNode left;
* TreeNode right;
* TreeNode(int x) { val = x; }
* }
*/
class Solution {
public void flatten(TreeNode root) {
if (root == null) return;
Stack<TreeNode> stack = new Stack<TreeNode>();
TreeNode p = root;
while (p != null) {
if (p.right != null) stack.push(p.right);
p.right = p.left;
p.left = null;
if (p.right == null && !stack.isEmpty()) {
p.right = stack.pop();
}
p = p.right;
}
}
}
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
LeetCode 문제풀이 노트 113.경로 총 II경로 총 II 제목 요구 사항 문제풀이 두 갈래 나무와 목표와 뿌리 노드에서 잎 노드까지의 모든 경로를 찾는 것은 목표와 같은 경로입니다. 설명: 잎 노드는 하위 노드가 없는 노드를 가리킨다. 예: 다음과 같은 두 ...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.