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...