题目:
翻转一棵二叉树
1 1
/ \ / 2 3 => 3 2
/ 4 4
递归固然可行,能否写个非递归的?
解题:
递归比较简单,非递归待补充
Java程序:
/** * Definition of TreeNode: * public class TreeNode { * public int val; * public TreeNode left, right; * public TreeNode(int val) { * this.val = val; * this.left = this.right = null; * } * } */ public class Solution { /** * @param root: a TreeNode, the root of the binary tree * @return: nothing */ public void invertBinaryTree(TreeNode root) { // write your code here invertTree(root); } public TreeNode invertTree(TreeNode root){ if( root ==null){ return root; } TreeNode rleft= root.left; root.left = invertTree(root.right); root.right = invertTree(rleft); return root; } }
总耗时: 994 ms
Python程序:
""" Definition of TreeNode: class TreeNode: def __init__(self, val): self.val = val self.left, self.right = None, None """ class Solution: # @param root: a TreeNode, the root of the binary tree # @return: nothing def invertBinaryTree(self, root): # write your code here self.invertTree(root) def invertTree(self,root): if root == None: return root rlft = root.left root.left = self.invertTree(root.right) root.right = self.invertTree(rlft) return root
总耗时: 118 ms
lintcode 容易题:Invert Binary Tree 翻转二叉树
原文:http://www.cnblogs.com/theskulls/p/4889550.html