牛客 劍指offer系列題解 二叉樹的映象

2021-10-05 15:04:32 字數 1097 閱讀 1862

記錄刷題的過程。牛客和力扣中都有相關題目,這裡以牛客的題目描述為主。該系列預設採用python語言。

1、問題描述:

操作給定的二叉樹,將其變換為源二叉樹的映象。

2、資料結構:

二叉樹3、題解:

處理根節點,處理左子樹,處理右子樹。

# -*- coding:utf-8 -*-

# class treenode:

# def __init__(self, x):

# self.val = x

# self.left = none

# self.right = none

class

solution

:# 返回映象樹的根節點

defmirror

(self, root)

:# write code here

ifnot root:

return

none

#處理根節點

root.left,root.right = root.right,root.left

#處理左子樹

self.mirror(root.left)

#處理右子樹

self.mirror(root.right)

return root

或者:

class

solution

:# 返回映象樹的根節點

defmirror

(self, root)

:# write code here

ifnot root:

return

root.left,root.right = self.mirror(root.right)

,self.mirror(root.left)

return root

4、複雜度分析:

時間複雜度:o(n),n結點數量

空間複雜度:o(n)

《劍指offer》牛客網java題解 重建二叉樹

輸入某二叉樹的前序遍歷和中序遍歷的結果,請重建出該二叉樹。假設輸入的前序遍歷和中序遍歷的結果中都不含重複的數字。例如輸入前序遍歷序列和中序遍歷序列,則重建二叉樹並返回。從前序遍歷序列中找根,然後去中序遍歷序列中找根左面的為左子樹,右面的為右子樹,遞迴即可完成重建二叉樹。public class so...

牛客 劍指offer系列題解 序列化二叉樹

記錄刷題的過程。牛客和力扣中都有相關題目,這裡以牛客的題目描述為主。該系列預設採用python語言。1 問題描述 請實現兩個函式,分別用來序列化和反序列化二叉樹 二叉樹的序列化是指 把一棵二叉樹按照某種遍歷方式的結果以某種格式儲存為字串,從而使得記憶體中建立起來的二叉樹可以持久儲存。序列化可以基於先...

牛客《劍指Offer》 重建二叉樹

輸入某二叉樹的前序遍歷和中序遍歷的結果,請重建出該二叉樹。假設輸入的前序遍歷和中序遍歷的結果中都不含重複的數字。例如輸入前序遍歷序列和中序遍歷序列,則重建二叉樹並返回。二叉樹原本可以用遞迴的方式定義,所以面對此類問題注意向遞迴的思想靠攏。將整棵樹的構造過程視為對其左右子樹的構造過程,關鍵如何劃分子樹...