翻轉一棵二叉樹。
示例:輸入:
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...