來源:力扣(LeetCode)
鏈接:https://leetcode-cn.com/problems/invert-binary-tree/
題目描述
給定一棵二叉樹哈蝇,將它翻轉(zhuǎn)吞彤。
題目分析
如上圖,本題采用遞歸實(shí)現(xiàn):從根節(jié)點(diǎn)開始遍歷疚俱,并從葉子節(jié)點(diǎn)開始翻轉(zhuǎn)式塌,如果當(dāng)前節(jié)點(diǎn)的左右子樹已經(jīng)翻轉(zhuǎn)博敬,只需要交換兩子樹即可。
代碼實(shí)現(xiàn)
public TreeNode invertTree(TreeNode root) {
if (root == null) {
return root;
}
TreeNode left = invertTree(root.left);
TreeNode right = invertTree(root.right);
root.left = right;
root.right = left;
return root;
}
復(fù)雜度
- 時(shí)間復(fù)雜度:O(n)峰尝,n 為二叉樹節(jié)點(diǎn)的數(shù)目
- 空間復(fù)雜度:O(n)
好了偏窝,今天就到這里,感謝各位看官到這里武学,不如點(diǎn)個(gè)關(guān)注吧祭往!