嘎 二叉樹 226 翻轉二叉樹

2022-09-06 21:42:19 字數 666 閱讀 1679

題目:

翻轉一棵二叉樹。

示例:輸入:

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;

}}

然後。。雖然知道是錯的,但是想不出來怎麼才是對的

//

先序遍歷,根左右 從上向下交換

public

treenode inverttree(treenode root)

//中序遍歷,左根右

public

treenode inverttree(treenode root)

//後序遍歷,左右根 從下向上交換

public

treenode inverttree(treenode root)

(二叉樹)226 翻轉二叉樹

翻轉一棵二叉樹。其實就是交換一下左右節點,然後再遞迴的交換左節點,右節點 根據動畫圖我們可以總結出遞迴的兩個條件如下 終止條件 當前節點為null時返回 交換當前節點的左右節點,再遞迴的交換當前節點的左節點,遞迴的交換當前節點的右節點 class solution 下面三句是將當前節點的左右子樹交換...

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