[Leetcode] 94. Binary Tree Inorder Traversal

Algorithm|2021. 8. 3. 16:18
반응형

Identifying the Problem

이진트리의 중위 순회 진행하라.

Organizing thoughts

이진트리도 처음보는데, 중위 순회 만들라뇨,,

조건도 복잡하고, 자녀 트리에서 부모 트리로 어떻게 올라갈지도 갈피가 안 잡혀서 

답 보고 익혔다.

 

아래 블로그에 이진트리 설명 잘 돼 있어 참고했다.

 

 

4.Binary Tree Traveral에 대해 알아보자

자료구조 이진탐색트리와 그 표현에 대해서 알아보자.

gnujoow.github.io

Sourcecode

 

void inorder(struct TreeNode* root,int* answer, int* Size);

int* inorderTraversal(struct TreeNode* root, int* returnSize){

    int* answer = malloc(sizeof(int) * 256);
    *returnSize = 0;
    inorder(root, answer, returnSize);
        
    return answer;
}

void inorder(struct TreeNode* root,int* answer, int* Size)
{
    if(root!=NULL) //왼쪽이나 오른쪽의 값이 없을 경우, 이전 recursion으로 되돌아간다.
    {
        inorder(root->left, answer, Size); //왼쪽만 주구 장창 파내려간다.
        answer[*Size] = root->val; //값을 집어넣기
        (*(Size))++;// == *Size = *Size + 1 실수하기 쉬우니깐 오른쪽걸로 하는게 좋을 듯 함
        inorder(root->right, answer,Size);
        
        
    }
    else return;
    
}

 

 

Mistake

  • (*(Size))++ 에서  실수하기 쉬우니깐 *Size = *Size + 1로 하는 게 좋을 듯하다.

 

반응형

'Algorithm' 카테고리의 다른 글

[Leetcode] 101. Symmetric Tree  (0) 2021.08.03
[Leetcode] 100. Same Tree  (0) 2021.08.03
[Leetcode] 69. Sqrt(x)  (0) 2021.08.03
[Leetcode] 238. Product of Array Except Self  (0) 2021.08.01
[Leetcode] 202. Happy Number  (0) 2021.08.01

댓글()