遞迴 最長同值路徑

2021-09-26 21:54:30 字數 833 閱讀 8310

給定乙個二叉樹,找到最長的路徑,這個路徑中的每個節點具有相同值。 這條路徑可以經過也可以不經過根節點。

注意:兩個節點之間的路徑長度由它們之間的邊數表示。

輸入:

輸出:2

輸入:

輸出:2

注意:給定的二叉樹不超過10000個結點。 樹的高度不超過1000。

最長的路徑有三種情況:

1.在左子樹內部

2.在右子樹內部

3.在穿過左子樹,根節點,右子樹的一條路徑中

設計乙個遞迴函式,返回以該節點為根節點向下走的最長同值路徑

知道這個值以後

以某個節點為根節點的最長同值路徑就是,

如果該節點的值等於其左子樹的值,則最長同值路徑要加上左子樹的最長同值路徑,如果不等,左子樹的路徑為0

如果該節點的值等於其右子樹的值,則最長同值路徑要加上右子樹的最長同值路徑,如果不等,右子樹的路徑為0

我們用乙個全域性變數記錄這個最大值,不斷更新

/**

* definition for a binary tree node.

* struct treenode

* };

*/class solution

int helper(treenode* root)

};

leetcode 遞迴 687 最長同值路徑

給定乙個二叉樹,找到最長的路徑,這個路徑中的每個節點具有相同值。這條路徑可以經過也可以不經過根節點。注意 兩個節點之間的路徑長度由它們之間的邊數表示。示例 1 輸入 5 4 5 1 1 5輸出 2示例 2 輸入 1 4 5 4 4 5輸出 2注意 給定的二叉樹不超過10000個結點。樹的高度不超過1...

最長同值路徑

題目力扣鏈結 給定乙個二叉樹,找到最長的路徑,這個路徑中的每個節點具有相同值。這條路徑可以經過也可以不經過根節點。注意 兩個節點之間的路徑長度由它們之間的邊數表示。例項1 輸入 輸出 2 輸入 看到二叉樹的題,首先要想到遞迴。首先,要想得到等值路徑,需要該節點的左孩子的等值路徑和該節點右孩子的等值路...

最長同值路徑

給定乙個二叉樹,找到最長的路徑,這個路徑中的每個節點具有相同值。這條路徑可以經過也可以不經過根節點。注意 兩個節點之間的路徑長度由它們之間的邊數表示。示例 1 輸入 5 4 5 1 1 5輸出 2示例 2 輸入 1 4 5 4 4 5輸出 2注意 給定的二叉樹不超過10000個結點。樹的高度不超過1...