데이비드가 너를 데리고 -leetcode 퀴즈 쓰기(94. 두 갈래 나무의 중순, 귀속+비귀속)
5244 단어 leetcode 퀴즈
leetcode 퀴즈 (94. 두 갈래 나무의 중간 순서, 귀속 + 비귀속)
질문:
두 갈래 나무의 중간 순서대로 두 갈래 나무를 정해서 중간 순서대로 되돌려줍니다.
예:
입력: [1,null,2,3] 1\2/3
출력: [1,3,2]
귀속과 비귀속의 두 가지 코드를 쓰십시오
해결 방법:
생각:
귀속과 비귀속 두 가지 방법이 있을 수 있다
반복python 코드:
class Solution:
def inorderTraversal(self, root: TreeNode) -> List[int]:
result=[]
self.inorder(root,result)
return result
def inorder(self,root,result):
p=root
if p:
self.inorder(p.left,result)
result.append(p.val)
self.inorder(p.right,result)
비귀속python 코드:
# 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]:
result=[]
if root==None:
return result
stack=[]
p=root
while(p or stack):
if p:
stack.append(p)
p=p.left
else:
p=stack.pop()
result.append(p.val)
p=p.right
return result
class Solution:
def inorderTraversal(self, root: TreeNode) -> List[int]:
result=[]
self.inorder(root,result)
return result
def inorder(self,root,result):
p=root
if p:
self.inorder(p.left,result)
result.append(p.val)
self.inorder(p.right,result)
# 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]:
result=[]
if root==None:
return result
stack=[]
p=root
while(p or stack):
if p:
stack.append(p)
p=p.left
else:
p=stack.pop()
result.append(p.val)
p=p.right
return result