Leetcode刷題226 翻轉二叉樹

2021-10-17 08:36:11 字數 1158 閱讀 4125

翻轉一棵二叉樹。

示例:輸入:

4/   \

2     7

/ \   / \

1   3 6   9

輸出:4

/   \

7     2

/ \   / \

9   6 3   1

備註:這個問題是受到 max howell 的 原問題 啟發的 :

谷歌:我們90%的工程師使用您編寫的軟體(homebrew),但是您卻無法在面試時在白板上寫出翻轉二叉樹這道題,這太糟糕了。

class solution 

//方法三:使用佇列bfs

//時間複雜度o(n),空間複雜度o(n)

private treenode inverttreeiii(treenode root)

queuequeue = new linkedlist<>();

queue.add(root);

while (!queue.isempty())

if (node.right != null)

}return root;

}//方法二:迭代的過程中進行翻轉,dfs

//時間複雜度o(n),空間複雜度o(n)

private treenode inverttreeii(treenode root)

stackstack = new stack<>();

stack.push(root);

while (!stack.isempty())

if (node.left != null)

}return root;

}//方法一:遞迴

//時間複雜度o(n),空間複雜度o(n)

private treenode inverttreei(treenode root)

//先翻轉根節點的左右子樹

treenode temp = root.left;

root.left = root.right;

root.right = temp;

//遞迴左子樹和右子樹

inverttree(root.left);

inverttree(root.right);

return root;

}}

LeetCode刷題之226 翻轉二叉樹

我不知道將去向何方,但我已在路上!4 2 7 1 3 6 9 但是下面這個 1,2,2,null,3,null,3 則不是映象對稱的 4 7 2 9 6 3 1 definition for a binary tree node.class treenode def init self,x self...

leetcode刷題,總結,記錄,備忘 226

leetcode226題。invert binary tree 倒置二叉樹。想不到這題還有個梗,挺有意思的。我一開始自作聰明,想用乙個棧乙個佇列來做,用中序遍歷,把節點push進棧中,把節點的指push進佇列中,遍歷完之後,分別從棧頂和佇列頂拿出節點和數值,賦值。一開始想著感覺還挺對的,遞交了幾次都...

226 翻轉二叉樹 leetcode

226.翻轉二叉樹 leetcode 226.翻轉二叉樹 definition for a binary tree node.class treenode class solution tmp root left root left root right root right tmp this in...