lintcode 二叉樹的最大節點

2021-07-30 07:04:17 字數 702 閱讀 8328



1、問題   

在二叉樹中尋找值最大的節點並返回。

樣例

1

/ \

-5 2

/ \ / \

0 3 -4 -5

返回值為3的節點。

2、思路

首先將根節點與乙個無限小的數比較,若根節點大於它將根節點的值賦給它,並且將根節點付給乙個臨時指標變數。

用遞迴遍歷,整棵樹,每一次遞迴的過程中逐次尋找較大的數並把此節點賦給臨時指標,最後返回臨時指標即為最大節點。

3、**

/*struct treenode

*/class solution

maxnode(root->left);

maxnode(root->right);

return t;}};

4、感想

第一節課就開啟這個題,因為標籤是入門以為會很簡單,當時遍歷都不知道該怎麼寫,試了幾次就放棄了。學了各種遍歷之後再回來寫明顯簡單多了!

本來想直接用根節點的值初始化max,( max=root->val;)後來發現如果寫在函式外沒有定義根節點所以沒法用,如果寫在函式內就會每一次遞迴都重置了max,,還是用乙個無限小的數把max初始化了。。。。

注意:比較在前,遍歷在後!!

lintcode 二叉樹的最大節點

1 問題描述 在二叉樹中尋找值最大的節點並返回 2 思路 用中間結點儲存每一次遞迴時比較的取得最大值的節點。3 解題 definition of treenode class treenode class solution maxnode root left maxnode root right r...

Lintcode 入門 632 二叉樹的最大節點

definition of treenode class treenode class solution else void getmax treenode root,int p getmax root left,p getmax root right,p 總結 一種不同於由下至上最後比三定點,左最...

二叉樹的最大節點

1 問題描述 在二叉樹中尋找值最大的節點並返回。給出如下一棵二叉樹 1 5 2 0 3 4 5 返回值為 3 的節點。2 實現思路 從根節點開始前序遍歷,與其左右子樹結點值比較,a為遍歷過的最大節點,a與接下來遍歷的節點進行比較。3 class solution treenode compare t...