226. Invert Binary Tree
2016-07-18 13:07
197 查看
226. Invert Binary Tree
Leetcode link for this questionDiscription:
Invert a binary tree.4 / \ 2 7 / \ / \ 1 3 6 9
to
4 / \ 7 2 / \ / \ 9 6 3 1
Analyze:
Code 1:
#Definition for a binary tree node. class TreeNode(object): def __init__(self, x): self.val = x self.left = None self.right = None #Generate a binary tree by a list ( like, [1,2,None,4,5,6,None,8,9,10,11,12] ) and return the root node. def gen_Tree(val_list): if not val_list: return root=TreeNode(val_list.pop(0)) #print root.val le_list=[root] while val_list: tmp=le_list.pop(0) if val_list: tmp.left=TreeNode(val_list.pop(0)) if tmp.left.val!=None: le_list.append(tmp.left) if val_list: tmp.right=TreeNode(val_list.pop(0)) if tmp.right.val!=None: le_list.append(tmp.right) else: return root return root # print the tree by level def show_Tree(root): def print_fun(le): for i in le: if i!=None: print i.val, else: print 'None', print '' cur_le=[root] next_le=[] print_fun(cur_le) while cur_le: tmp=cur_le.pop(0) if tmp!=None:# and tmp.val!=None: if tmp.left: next_le.append(tmp.left) else: next_le.append(None) if tmp.right: next_le.append(tmp.right) else: next_le.append(None) if not cur_le: cur_le=next_le print_fun(cur_le) next_le=[] if not cur_le: break return
Solution code
class Solution(object): def invertTree(self, root): """ :type root: TreeNode :rtype: TreeNode """ if root: root.right,root.left=root.left,root.right self.invertTree(root.left) self.invertTree(root.right) return root
root=gen_Tree([1,2,None,4,5,6,None,8,9,10,11,12]) show_Tree(root)
1 2 None 4 5 None None 6 None 8 9 10 11 None None 12 None None None None None None None None None
s=Solution() root=s.invertTree(root) show_Tree(root)
1 None 2 None None 5 4 9 8 None 6 None None None 12 None None 11 10 None None None None None None
Submission Result:
Status: AcceptedRuntime: 44 ms
Ranking: beats 79.29%
相关文章推荐
- 常见的几种RuntimeException
- Retrofit 2.0 throwing @Field parameters can only be used with form encoding
- CSS3主要知识点复习总结+HTML5新增标签
- Linux系统结构 详解
- 变量作用域(JavaScript)
- 怎样yarn application -kill jobid
- Ubuntu 14中,Foxmail关联163邮箱账号时,总提示“密码错误”的解决方案
- webGL第二课
- JavaScript 对象属性操作和方法学习笔记(上)
- 逆元
- hadoop 遍历hdfs文件夹列出其中所有的txt文件
- iOS开发之键盘类型UIKeyboardType
- 1501: 货币系统(money)
- nginx实现单服务代理多域名
- 104. Maximum Depth of Binary Tree
- Mamp 3.5 Pro 注册码
- hdu 2577 How to Type 经典DP
- Ubuntu 14 修改默认打开方式
- Unable to resolve target 'android-8',INSTALL_FAILED_UPDATE_INCOMPATIBLE和failed to start daemon等问题的解决
- 关于对Linux下MCE(Machine Check Exception)的一点认识