7.4 - medium总结7

109. Convert Sorted List to Binary Search Tree: 基本上是会做的,但是这个运用了一些小技巧,利用额外的index来记录当前的位置,有两种方法,一种是直接找中点然后写递归,这个比较直观,第二种是利用额外的index做一遍inorder traversal,稍微难想一些
113. Path Sum II: 两点要注意,一是backtracking的时候分左右,二是要判断左右是否为None,只有非None的时候才进入backtracking的下一层
114. Flatten Binary Tree to Linked List: inorder traversal如何变换link的问题。用递归的想法,先把左边flatten了,然后再记录一些值,然后再flatten右边。
116. Populating Next Right Pointers in Each Node: 就是level traversal,没什么做的
117. Populating Next Right Pointers in Each Node II: 这题和上一题有意思的地方在于如果限定constant space该怎么办,这时候就要loop当前层的node来链接下一层的node
120. Triangle: 这道题的空间优化还是花了一些时间来做的,要开一章专门总结DP的空间优化的
127. Word Ladder: 一层一层找,注意一下查重
129. Sum Root to Leaf Numbers: 和113差不多,左右subtree 的backtracking
130. Surrounded Regions: 检查所有靠边缘的0,然后把其改为S,并且把它的上下左右的0加入到queue里
131. Palindrome Partitioning: 凡事列举所有可能性的,都可以用backtracking试一试。这道题要创建一个PalindromeMap,条件是if s[i] == s[j] and (i - j <= 2 or dp[j+1][i-1]),可以对backtracking进行剪枝

你可能感兴趣的:(7.4 - medium总结7)