翻轉一棵二叉樹。
示例:輸入:
4/ \
2 7
/ \ / \
1 3 6 9
輸出:4
/ \
7 2
/ \ / \
9 6 3 1
思路:有關樹的問題要想到遞迴,遞迴的想法很簡單,將根的左右子樹互換之後,再已左右子樹為根繼續互換。遞迴最重要的就是終止條件,如果傳入的是空指標,或者葉節點,那麼不需要再遞迴了,直接返回根節點。需要注意的是,在子樹遞迴的時候是不需要建立什麼接收遞迴的引數的,不接收返回值程式是沒有問題的。
c++**如下:
/**
* definition for a binary tree node.
* struct treenode
* };
*/class solution
};
leetcode 226 翻轉二叉樹
翻轉一棵二叉樹。示例 輸入 4 2 7 1 3 6 9輸出 4 7 2 9 6 3 1備註 這個問題是受到 max howell 的 原問題 啟發的 谷歌 我們90 的工程師使用您編寫的軟體 homebrew 但是您卻無法在面試時在白板上寫出翻轉二叉樹這道題,這太糟糕了。definition for...
LeetCode 226 翻轉二叉樹
這道題目是一道很經典的關於二叉樹的演算法題,題目如下 題目的描述非常簡單,就是翻轉一棵給定的二叉樹,然而有趣的是這個備註,這個故事是 mac 系統的包管理工具 homebrew 的開發者 max howell 去谷歌面試的時候沒有做出這道面試題而遭淘汰了,所以這道題目也是引發血案的一道二叉樹題目。其...
LeetCode 226 翻轉二叉樹
自己寫的遞迴的解法,還是比較高效的。class solution 看完討論區後自己寫的迭代的解法 輔助資料結構用佇列和棧都可以 class solution return root class solution return root 討論區優秀題解 1 前中後序遍歷 treenode invert...