二叉樹根節點左右子樹的遍歷儲存

2021-10-23 09:18:35 字數 861 閱讀 1391

題目描述

判斷一棵二叉樹是否對稱。注意,如果乙個二叉樹同此二叉樹的映象是同樣的,定義其為對稱的。

我用的深度遍歷方法,將二叉樹根節點的左右子樹分別儲存在乙個向量中,遞迴完成之後比較兩個向量是否相同,決定這是不是對稱二叉樹,經過測試,實驗結果是正確的,但是在提交驗證的時候不能通過,執行超時,可見額外的儲存和比較還是比較耗時的。下面我把超時的**跟不超時的**貼出來,給大家比較一下,希望下次能夠注意。

這是二叉樹的結構體和建構函式

struct treenode 

};

這一部分是超時的**

class

solution

bool

issymmetrical

(treenode* proot)}if

(test < leftsize)

return

false

;return

true;}

};

下面這一部分是不超時,完全通過的**

class

solution

bool

issymmetrical

(treenode* proot)

};

下面**為main函式,可以針對上面**進行測試

測試的時候注意加入標頭檔案和命名空間。

#include

#include

#include

using

namespace std;

int

main()

二叉樹 根據遍歷構造二叉樹

二叉樹中的三種遍歷方式,是我們最為熟知的,通過先序遍歷 中序遍歷或者是中序遍歷 後序遍歷都可以唯一確定一棵二叉樹 但是注意,先序遍歷 後序遍歷不能確定一棵二叉樹,但是如果一棵二叉樹中只有度為0和度為2的節點,那麼這種遍歷方式也是可以確定一棵確定的二叉樹的。先序 中序 構造二叉樹 下面我們分別來看一下...

二叉樹的操作(交換左右子樹)

問題描述 二叉樹按照二叉鍊錶的方式儲存。編寫程式,計算二叉樹中葉子結點的數目並輸出 編寫程式,將二叉樹的左右子樹進行交換,並輸出交換後的二叉樹的後序遍歷序列。輸入形式 二叉樹的前序遍歷序列,空指標的位置輸入字元 輸出形式 葉子結點的數目 左右子樹交換後,後序遍歷的序列,空子樹的位置輸出字元 樣例輸入...

二叉樹 根據二叉樹遍歷序列構造二叉樹

二叉樹的節點型別宣告如下 struct btnode 定理1任何 n 0 個不同節點的二叉樹,都可由它的前序序列和中序序列唯一地確定。根據前序遍歷的特點,知前序序列 presequence 的首個元素 presequence 0 為二叉樹的根 root 然後在中序序列 insequence 中查詢此...