這題被啟發的述說蠻好笑的,會寫軟體,但不會在白板寫出反轉二元樹。
有時候會被簡單卡關是難免的。
要反轉二元樹,也就是左右對調,node.left, node.right = node.right, node.left,如此運作下去到底。
我也沒有一次到位,不過很快就察覺到該怎麼寫。
Python
class Solution: def invertTree(self, root: TreeNode) -> TreeNode: stack = [root] while stack: node = stack.pop() if node: node.left, node.right = node.right, node.left stack.extend([node.left, node.right]) return rootC#
public class Solution { public TreeNode InvertTree(TreeNode root) { if(root is null){return root;} var stack = new Stack(); stack.Push(root); while(stack.Count > 0) { var node = stack.Pop(); var temNode = node.right; node.right = node.left; node.left = temNode; if (!(node.right is null)) stack.Push(node.right); if (!(node.left is null)) stack.Push(node.left); } return root; } }