주제 트리의 하부 구조를 설명
두 바이너리 입력은 A, B, B는 A의를 하부를 판단한다. (시 : 우리는 빈 트리 나무 어떤 하부되지 않습니다 동의)
사고
역행
# -*- coding:utf-8 -*-
# class TreeNode:
# def __init__(self, x):
# self.val = x
# self.left = None
# self.right = None
class Solution:
def HasSubtree(self, pRoot1, pRoot2):
if not (pRoot2 and pRoot1) :
return False
if pRoot2.val == pRoot1.val:
left = True
right = True
if pRoot2.left:
if not self.HasSubtree(pRoot1.left, pRoot2.left):
left = False
if pRoot2.right:
if not self.HasSubtree(pRoot1.right, pRoot2.right):
right = False
if not (left and right):
if not (self.HasSubtree(pRoot1.left,pRoot2) or self.HasSubtree(pRoot1.right,pRoot2)):
return False
else:
if self.HasSubtree(pRoot1.left, pRoot2) or self.HasSubtree(pRoot1.right, pRoot2):
return True
else:
return False
return True
주제 두
주어진 이진 트리의 동작은, 이진 트리 소스 이미지로 변환됩니다.
설명을 입력합니다 :
이진 트리의 미러링 정의 : 이진 소스 8 / \ 610 / \ / \ 57,911 미러 이진 8 / \ 106 / \ / \ 11,975
사고
재귀
# -*- coding:utf-8 -*-
# class TreeNode:
# def __init__(self, x):
# self.val = x
# self.left = None
# self.right = None
class Solution:
# 返回镜像树的根节点
def Mirror(self, root):
if root:
temp = root.right
root.right = root.left
root.left = temp
self.Mirror(root.left)
self.Mirror(root.right)
return root