104. Maximum Depth of Binary Tree
2016-07-18 13:04
204 查看
104. Maximum Depth of Binary Tree
Leetcode link for this questionDiscription:
Given a binary tree, find its maximum depth.The maximum depth is the number of nodes along the longest path from the root node down to the farthest leaf node.
Analyze:
#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 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
Code 1:
class Solution(object): def maxDepth(self,root): if not root: return 0 queue,hei,max_hei=[],1,1 queue.append((root,1)) while queue: node,hei=queue.pop(0) max_hei=max(max_hei,hei) if node.left: queue.append((node.left,hei+1)) if node.right: queue.append((node.right,hei+1)) max_hei=max(max_hei,hei) return max_hei
Submission Result:
Status: AcceptedRuntime: 68 ms
Ranking: beats 71.09%
相关文章推荐
- leetcode 179 Largest Number
- leetcode 24 Swap Nodes in Pairs
- leetcode 2 Add Two Numbers 方法1
- leetcode 2 Add Two Numbers 方法2
- leetcode----Longest Substring Without Repeating Characters
- [LeetCode]47 Permutations II
- [LeetCode]65 Valid Number
- [LeetCode]123 Best Time to Buy and Sell Stock III
- [LeetCode] String Reorder Distance Apart
- [LeetCode] Sliding Window Maximum
- [LeetCode] Find the k-th Smallest Element in the Union of Two Sorted Arrays
- [LeetCode] Determine If Two Rectangles Overlap
- [LeetCode] A Distance Maximizing Problem
- leetcode_linearList
- leetcode_linearList02
- 021-Merge Two Sorted Lists(合并两个排好序的单链表);leetcode
- LeetCode[Day 1] Two Sum 题解
- LeetCode[Day 2] Median of Two Sorted Arrays 题解
- LeetCode[Day 3] Longest Substring Without... 题解
- LeetCode [Day 4] Add Two Numbers 题解