給定乙個二叉樹,找到最長的路徑,這個路徑中的每個節點具有相同值。 這條路徑可以經過也可以不經過根節點。
注意:兩個節點之間的路徑長度由它們之間的邊數表示。
輸入:
輸出: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...