C 學習隨筆 重構二叉樹和判斷是否是對稱二叉樹

2022-09-15 08:06:11 字數 1389 閱讀 5085

通過輸入二叉樹的前序遍歷和中序遍歷重構二叉樹,

然後對二叉樹進行是否是對稱二叉樹的判斷。

1 #include2 #include3

using

namespace

std;45

struct

treenode

10};

1112

//根據前序遍歷和中序遍歷重構二叉樹

13 treenode* reconstructbinarytree(vectorpre, vectorvin) 25}

26 vectorpre_left, pre_right, vin_left, vin_right;

27for (int i = 0; i < root_index; i++)

3132

for (int i = root_index + 1; i < pre.size(); i++)

3637 root->left =reconstructbinarytree(pre_left, vin_left);

38 root->right =reconstructbinarytree(pre_right, vin_right);

3940

return

root;41}

4243

44//

判斷是否是對稱的

45bool issymmetrical(treenode* p1, treenode*p2)

5455

56bool issymmetrical(treenode*proot)

60return

issymmetrical(proot, proot);61}

6263

64int

main()

74 cout << "

請輸入中序遍歷:

判斷二叉樹是否平衡 是否完全二叉樹 是否二叉排序樹

1.判斷二叉樹是否平衡 求樹的高度 int treedepth node t return0 判斷二叉樹是否平衡 int isbalanced node t 2.判斷二叉樹是否相同 判斷兩棵二叉樹是否相同 int comptree node tree1,node tree2 拷貝二叉樹 void c...

二叉樹 判斷二叉樹是否為完全二叉樹

問題描述 判斷一棵二叉樹是否為完全二叉樹。知識點 完全二叉樹是指除二叉樹的最後一層外,其他各層的節點數達到最大個數,且最後一層的葉節點從左到右連續存在,只缺右側若干節點。演算法實現 class node is complete binary tree public static boolean is...

判斷二叉樹是否為平衡二叉樹

一 線性思維 遍歷每個節點都時候,求左右子樹的深度,如果左右子樹深度相差不超過1,繼續遞迴遍歷左右節點,此種方法會重複遍歷,時間效率不高 is balanced t if t is null return true left treedepth t.left right treedepth t.ri...