LeetCode热题100道-Day09
var res [][]int
var list []int
func subsets(nums []int) [][]int {
res = make([][]int, 0)
list = make([]int, 0)
tra(nums, 0)
return res
}
func tra(nums []int, start int) {
temp := make([]int, len(list))
copy(temp, list)
res = append(res, temp)
for i := start; i < len(nums); i++ {
list = append(list, nums[i])
tra(nums, i+1)
list = list[:len(list)-1]
}
}
func mergeTrees(root1 *TreeNode, root2 *TreeNode) *TreeNode {
if root1 == nil && root2 != nil {
return root2
}
if (root1 != nil && root2 == nil) || (root1 == nil && root2 == nil) {
return root1
}
root1.Val += root2.Val
root1.Left = mergeTrees(root1.Left, root2.Left)
root1.Right = mergeTrees(root1.Right, root2.Right)
return root1
}