剑指offer
xiuxiuheheda
这个作者很懒,什么都没留下…
展开
-
不用加减乘除做加法
class Solution { public: int Add(int num1, int num2) { if(num1 == 0) return num2; if(num2 == 0) return num1; int sum,carry;原创 2017-02-25 23:20:29 · 168 阅读 · 0 评论 -
合并两个有序链表
/* struct ListNode { int val; struct ListNode *next; ListNode(int x) : val(x), next(NULL) { } };*/ class Solution { public: ListNode* Merge(ListNode* pHead1, ListNode* pHead2) {原创 2017-02-26 04:51:06 · 192 阅读 · 0 评论 -
链表中倒数第k个结点
/* struct ListNode { int val; struct ListNode *next; ListNode(int x) : val(x), next(NULL) { } };*/ class Solution { public: ListNode* FindKthToTail(ListNode* pListHead, unsigned int k) {原创 2017-02-26 04:30:18 · 241 阅读 · 0 评论 -
翻转单链表
/* struct ListNode { int val; struct ListNode *next; ListNode(int x) : val(x), next(NULL) { } };*/ class Solution { public: ListNode* ReverseList(ListNode* pHead) { ListNode *dummy = new原创 2017-02-26 04:19:35 · 214 阅读 · 0 评论 -
1+2+3+....+n
题目描述 求1+2+3+...+n,要求不能使用乘除法、for、while、if、else、switch、case等关键字及条件判断语句(A?B:C)。 class Solution { public: int Sum_Solution(int n) { return (long(1)+n)*n/2; } };原创 2017-02-26 00:15:12 · 227 阅读 · 0 评论 -
二进制中1的个数
class Solution { public: int NumberOf1(int n) { int count = 0; while(n) { ++count; n = (n-1)&n; } return count; } };原创 2017-02-26 00:13:20 · 148 阅读 · 0 评论 -
用两个栈实现队列
class Solution { public: void push(int node) { stack1.push(node); } int pop() { int res = 0; if(!stack2.empty()) { res = stack2.top();原创 2017-02-25 23:55:50 · 131 阅读 · 0 评论 -
斐波那契数列非递归算法
class Solution { public: int Fibonacci(int n) { int res[2] = {0,1}; if(n<=1) return res[n]; int num1 = 1; int num2 = 0; int sum = 0;原创 2017-02-25 23:50:42 · 325 阅读 · 0 评论 -
二叉树的镜像
题目描述 操作给定的二叉树,将其变换为源二叉树的镜像。 输入描述: 二叉树的镜像定义:源二叉树 8 / \ 6 10 / \ / \ 5 7 9 11 镜像二叉树 8 / \ 10 6 / \ / \ 11 9 7 5原创 2017-02-25 23:31:46 · 152 阅读 · 0 评论 -
二叉树的深度
/* struct TreeNode { int val; struct TreeNode *left; struct TreeNode *right; TreeNode(int x) : val(x), left(NULL), right(NULL) { } };*/ class Solution { public: int TreeDepth(TreeNode* pRo原创 2017-02-25 23:24:41 · 135 阅读 · 0 评论 -
从上往下打印二叉树
/* struct TreeNode { int val; struct TreeNode *left; struct TreeNode *right; TreeNode(int x) : val(x), left(NULL), right(NULL) { } };*/ class Solution { public: vector PrintFromTopToBottom原创 2017-02-26 05:11:28 · 174 阅读 · 0 评论