題解 翻轉二叉樹 226

2021-09-25 02:10:43 字數 585 閱讀 6447

翻轉一棵二叉樹。

示例:輸入:

4/   \

2     7

/ \   / \

1   3 6   9

輸出:4

/   \

7     2

/ \   / \

9   6 3   1

這道題就是用遞迴翻轉左右子節點就可以了,不知道為什麼我的**占用記憶體很大,到了35mb,想進行優化,結果收效甚微,希望有大佬指點一下

/**

* definition for a binary tree node.

* public class treenode

* }*/class solution

public static void invert(treenode root)

treenode temp = root.left;

root.left = root.right;

root.right = temp;

invert(root.left);

invert(root.right);

}}

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

226 翻轉二叉樹

翻轉一棵二叉樹。示例 輸入 輸出 翻轉一顆空樹還是空樹,因此,對於每乙個節點,分別翻轉它的子樹,把該節點的左右子樹交換,遞迴的翻轉所有節點。definition for a binary tree node.struct treenode class solution treenode left i...