左神演算法高階班1 2判斷兩個樹的結構是否相同

2022-06-04 00:51:15 字數 837 閱讀 1834

promblem:

給定兩個二叉樹t1和t2,返回t1的某個子樹結構是否與t2的結構相等。

solution:

首相將兩棵樹進行序列化【切記加上分割符和空節點標記】,

然後使用kmp演算法進行兩個字串匹配,判斷子樹串是否屬於原樹串即可

code:

1

#pragma once

2 #include 3 #include 45

using

namespace

std;67

struct

node813

};14

15void getsequence(string &str, node*root)

1625}26

27void getindex(int*& index, string

str)

2844}45

}4647bool issubtree(node* root1, node*root2)

4868

else

if (-1 ==index[j])

6973

else

74 j =index[j];75}

76delete

index;

77return (i <= str1.length() && j >=str2.length());78}

7980

void

test()

81

判斷兩個時間段是否重疊的演算法

判斷兩個時間段是否重疊,如 startdate1 enddate1 startdate2 enddate2 兩個時間的重疊分4種情況,若你一一列出這四種情況來判斷是否重疊那就弱爆了,最簡單的方法 startdate1 enddate2 and enddate1 startdate2 若你無法理解上面...

在二叉樹中找到兩個節點的最近公共祖先 高階

在二叉樹中找到兩個節點的最近公共祖先 高階 給定一棵二叉樹,多次給出這棵樹上的兩個節點 o1 和 o2,請對於每次詢問,找到 o1 和 o2 的最近公共祖先節點。輸入描述 第一行輸入兩個整數 n 和 root,n 表示二叉樹的總節點個數,root 表示二叉樹的根節點。以下 n 行每行三個整數 fa,...

演算法 求二叉樹中兩個節點的最大距離

如果我們把二叉樹看成乙個圖,父子節點之間的連線看成是雙向的,定義 距離 為這條路徑上所有節點的value和。寫乙個程式求一棵二叉樹中最大的路徑距離。對於這個圖,最大的路徑是從5 3 7,距離為15的路徑。採用後序遍歷,對於每乙個節點儲存經過當前節點的單邊路徑的最大距離,定義為single max,為...