Swift.复杂链表的复制

题目描述:输入一个复杂链表(每个节点中有节点值,以及两个指针,一个指向下一个节点,另一个特殊指针指向任意一个节点)。要求编写函数复制这个复杂链表。import Foundation // ListNode Utils public class ComplexListNode { public var val: Int public var next: ComplexListNode? public var sibling: ComplexListNode? public init(_ val: Int) { self.val = val ...

LeetCode 2015-10-11 PM 345℃ 0条

Swift.二叉树中和为某一值的路径

题目描述:输入一棵二叉树和一个整数, 打印出二叉树中结点值的和为输入整数的所有路径。从树的根结点开始往下一直到叶结点所经过的结点形成一条路径。import Foundation class For25Solution { func treeValSum(_ root: TreeNode?,_ n: Int) { var res = [[Int]]() let path = [Int]() pathHelper(root, &res, path, n) print(res)...

LeetCode 2015-10-07 PM 417℃ 0条

Swift.不用加减乘除做加法

题目描述:写一个函数,求两个整数之和,要求在函数体内不得使用+、-、*、/四则运算符号。import Foundation class For47Solution { func addSum(_ a: Int,_ b: Int) -> Int { var n1 = a var n2 = b while n2 != 0 { let sum = n1 ^ n2 let carry = (n1 & n2) << 1 n1 ...

LeetCode 2015-08-05 PM 375℃ 0条

Swift.二叉搜索树的后序遍历序列

题目描述:输入一个整数数组,判断该数组是不是某二叉搜索树的后序遍历结果。如果是则返回true,否则返回false。假设输入的数组的任意两个数字都互不相同。import Foundation class For24Solution { func isPostOrder(_ n: [Int],_ len: Int) -> Bool { if n.count == 0 || len == 0 { return false } let root = n[len - 1] ...

LeetCode 2015-07-14 PM 405℃ 0条

Swift.从上往下打印二叉树

题目描述:从上往下打印出二叉树的每个节点,同层节点从左至右打印。import Foundation class For23Solution { func printTreeNode(_ root: TreeNode?) { var queue: [TreeNode?] = [TreeNode]() queue.append(root) while !queue.isEmpty { let newRoot = queue.removeFirst()...

LeetCode 2015-07-13 PM 692℃ 0条