이진트리 코드 일부분인데 98번째줄 return self.get_max(node.right) 에서 return 빼고 self.get_max(node.right) 이렇게만 쓰는거랑 return 붙이는거랑 차이가 뭐임?
return의 역할은 함수탈출이나 값을 반환하는건데 어차피 재귀적으로 들어갈거면 붙이나 안붙이나 똑같지않나 라는 생각으로 같은 결과는 같을줄알고 돌려봤는데 다르게나오더라고
참고로 이진트리 insert로 6, 1, 8, 9, 22, 2 이 순서로 넣었고 get_max_value()하면 22가 정상적으로 나오는데 98번째줄 return을 빼면 6이 나오는데 이유좀..
return node.data하는거 패스해줘야지
근데 오른쪽 끝을 향해 계속 함수들이 재귀하면서 스택에 쌓이자나? 그러다가 오른쪽 끝에 다다르면 스택 위부터 return되는거잖아? 그럼 22 -> 9-> 8 ->6 이순서대로 return되는데 9 랑 8 이랑 6은 왜 씹히는거임??
return이 뭔지 모르는거냐?
return 을 안하면 저 함수 어떻게 끝낼건데요;
내가말한줄에 return 빼도 무한루프가 돌진않던데
쉽게 재귀가 아니고 그냥 코드라고 생각하고 봐라 if에서 안끝내면 밑으로 내려가겠지 그럼 재귀로 구했던건 헛짓이 되고 제일 먼저 불렀던 get_max의 리턴값이 반환됨 그게 6이네
야 근데 스택에 함수가 다 쌓이고 나면 if밑에 return도 각 함수마다 다 실행되지않음?
아 아니구나 이해함 ㄳ