티스토리 뷰
문제 링크입니다 : https://leetcode.com/problems/binary-tree-inorder-traversal/
Binary Tree Inorder Traversal - LeetCode
Level up your coding skills and quickly land a job. This is the best place to expand your knowledge and get prepared for your next interview.
leetcode.com
전형적인 트리 순회 문제이다.
그 중에서도 중위 순회 문제이다.
C++
/**
* Definition for a binary tree node.
* struct TreeNode {
* int val;
* TreeNode *left;
* TreeNode *right;
* TreeNode(int x) : val(x), left(NULL), right(NULL) {}
* };
*/
class Solution {
public:
vector<int> inorderTraversal(TreeNode* root) {
vector<int> ret;
traverse(ret, root);
return ret;
}
void traverse(vector<int>& ret, TreeNode* node) {
if(node == NULL) return;
traverse(ret, node->left);
ret.push_back(node->val);
traverse(ret, node->right);
}
};
JAVA
/**
* Definition for a binary tree node.
* public class TreeNode {
* int val;
* TreeNode left;
* TreeNode right;
* TreeNode(int x) { val = x; }
* }
*/
class Solution {
public List<Integer> inorderTraversal(TreeNode root) {
List<Integer> ret = new ArrayList<Integer>();
traverse(ret, root);
return ret;
}
void traverse(List<Integer> lt, TreeNode root) {
if(root == null) return;
traverse(lt, root.left);
lt.add(root.val);
traverse(lt, root.right);
}
}
Python3
# Definition for a binary tree node.
# class TreeNode:
# def __init__(self, x):
# self.val = x
# self.left = None
# self.right = None
class Solution:
def inorderTraversal(self, root: TreeNode) -> List[int]:
ret = []
def traverse(node):
if node == None:
return
traverse(node.left)
ret.append(node.val)
traverse(node.right)
traverse(root)
return lt
개발 환경 : vscode
지적, 조언, 질문 환영입니다! 댓글 남겨주세요~
'알고리즘 > LeetCode' 카테고리의 다른 글
LeetCode - Remove Nth Node From End of List (0) | 2022.01.24 |
---|---|
LeetCode - 5. Longest Palindromic Substring (0) | 2021.10.16 |
LeetCode - 2. Add Two Numbers (0) | 2021.10.12 |
LeetCode - 107.BinaryTreeLevelOrderTraversal2 (0) | 2020.04.28 |
LeetCode - 1. Two Sum (0) | 2020.04.28 |
댓글