(二叉樹)226 翻轉二叉樹

2021-10-24 09:01:30 字數 536 閱讀 8843

翻轉一棵二叉樹。

其實就是交換一下左右節點,然後再遞迴的交換左節點,右節點

根據動畫圖我們可以總結出遞迴的兩個條件如下:

終止條件:當前節點為null時返回

交換當前節點的左右節點,再遞迴的交換當前節點的左節點,遞迴的交換當前節點的右節點

class

solution

//下面三句是將當前節點的左右子樹交換

treenode tmp = root.right;

root.right = root.left;

root.left = tmp;

//遞迴交換當前節點的 左子樹

inverttree

(root.left)

;//遞迴交換當前節點的 右子樹

inverttree

(root.right)

;//函式返回時就表示當前這個節點,以及它的左右子樹

//都已經交換完了

return root;

}}

226. 翻轉二叉樹

嘎 二叉樹 226 翻轉二叉樹

題目 翻轉一棵二叉樹。示例 輸入 4 2 7 1 3 6 9 輸出 4 7 2 9 6 3 1 下面是錯誤的解答 class solution if right null if left null right null return root 然後。雖然知道是錯的,但是想不出來怎麼才是對的 先序遍歷...

226 翻轉二叉樹

翻轉一棵二叉樹。示例 輸入 4 2 7 1 3 6 9 輸出 4 7 2 9 6 3 1 備註 這個問題是受到 max howell 的 原問題 啟發的 谷歌 我們90 的工程師使用您編寫的軟體 homebrew 但是您卻無法在面試時在白板上寫出翻轉二叉樹這道題,這太糟糕了。class soluti...

226 翻轉二叉樹

解題思路 看到題目就會想到要左右節點交換,但是糾結了很久的問題是在遞迴左右節點時要不要判斷左右節點為空,後來看了別人的解題思路想到了,其實不用判斷,不管是否為空都要左右節點交換。至於root為空時,root.left是否合理的問題,更不用考慮了,因為root.left是通過別的值儲存起來的,且roo...