题目描述:输入一个复杂链表(每个节点中有节点值,以及两个指针,一个指向下一个节点,另一个特殊指针指向任意一个节点)。要求编写函数复制这个复杂链表。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 ...
题目描述:输入一棵二叉树和一个整数, 打印出二叉树中结点值的和为输入整数的所有路径。从树的根结点开始往下一直到叶结点所经过的结点形成一条路径。import Foundation class For25Solution { func treeValSum(_ root: TreeNode?,_ n: Int) { var res = [[Int]]() let path = [Int]() pathHelper(root, &res, path, n) print(res)...
题目描述:写一个函数,求两个整数之和,要求在函数体内不得使用+、-、*、/四则运算符号。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 ...
题目描述:输入一个整数数组,判断该数组是不是某二叉搜索树的后序遍历结果。如果是则返回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] ...