두 갈래 트리 경로의 최대값
For this problem, a path is defined as any sequence of nodes from some starting node to any node in the tree along the parent-child connections. The path must contain at least one node and does not need to go through the root.
For example: Given the below binary tree,
1
/ \
2 3
Return 6.
이런 제목은 우리가 이전에 한 구절과 처음부터 두 갈래 나무의 맨 아래 노드에 이르는 경로의 구절과 차이가 많지 않다. 단지 지금 이 나무 안의 임의의 경로 최대치를 구하고 있을 뿐이다.
우리는 먼저 화해를 구하는 사고방식을 세운다
나무 안의 한 경로는 무엇입니까?루트 노드에서 양쪽으로 뻗어 매번 번지는 노드에는 두 가지 선택이 있다. 왼쪽, 오른쪽, 번지는 과정에서cur 노드+양쪽 번지는 경로의 최대치를 기록하고 있다.
/**
* Definition for a binary tree node.
* public class TreeNode {
* int val;
* TreeNode left;
* TreeNode right;
* TreeNode(int x) { val = x; }
* }
*/
class Solution {
private int max;
public int maxPathSum(TreeNode root) {
if (root == null) {
return 0;
}
max = Integer.MIN_VALUE;
countRound(root);
return max;
}
// node
public int countRound(TreeNode node) {
if (node == null) {
return 0;
}
// ,
int left = Math.max(0,countRound(node.left));
// ,
int right = Math.max(0, countRound(node.right));
max = Math.max(max, (left + right) + node.val);
return Math.max(left, right) + node.val;
}
}
Given a binary tree, return the inorder traversal of its nodes’ values.
Example:
Input: [1,null,2,3]
1
\
2
/
3
Output:[1,3,2] 우리는 나무의 귀속이 편리하다고 생각하기 쉽지만, 귀속이 아닌 코드는 우리가 써야 한다.
/**
* Definition for a binary tree node.
* public class TreeNode {
* int val;
* TreeNode left;
* TreeNode right;
* TreeNode(int x) { val = x; }
* }
*/
class Solution {
public List inorderTraversal(TreeNode root) {
//if (root != null)
List res = new ArrayList<>();
//
Stack stack = new Stack<>();
TreeNode p = root;
while (p != null || !stack.isEmpty()) {
//
while (p != null) {
stack.push(p);
p = p.left;
}
if (!stack.isEmpty()) {
p = stack.pop(); //
res.add(p.val);
p = p.right;
}
}
return res;
}
}
반복 C++
void inOrder(BinTree *root){
if(root!=NULL){
inOrder(root->lchild);
cout<<root->dada<<" ";
inOrder(order->rchild);
}
}
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
0부터 시작하는 LeetCode Day8 「1302. Deepest Leaves Sum」해외에서는 엔지니어의 면접에 있어서 코딩 테스트라고 하는 것이 행해지는 것 같고, 많은 경우, 특정의 함수나 클래스를 주제에 따라 실장한다고 하는 것이 메인이다. 빠른 이야기가 본고장에서도 행해지고 있는 것 같은 코...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.