LeetCode
liuxinglin
这个作者很懒,什么都没留下…
展开
-
二叉树先序遍历非递归方法的两种实现
vector preorderTraversal(TreeNode *root){vector result;stack s;if (root == NULL)return result;s.push(root); //将根节点入栈while (!s.empty()){TreeNode *p = s.top();result.push_back(p->val);s.pop();if (p->rig原创 2015-04-23 20:17:39 · 610 阅读 · 0 评论 -
按层遍历二叉树
使用C++中的pair类型来存储树的节点和它的层数 vector > levelOrder(TreeNode *root) { vector > vec; if (root == NULL) return vec; queue > queue; pair pair(root, 0); //根节点是第0层 queue.pu原创 2015-04-25 23:15:09 · 475 阅读 · 0 评论 -
二叉树中序遍历的非递归方法
vector inorderTraversal(TreeNode *root) { vector result; if (root == NULL) return result; stack s; TreeNode *p = root; while (p || !s.empty()) { while原创 2015-04-25 16:21:53 · 491 阅读 · 1 评论 -
反转链表的迭代实现和递归实现
迭代实现: ListNode *reverseList(ListNode *head) { if (head == NULL || head->next == NULL) return head; ListNode *pCurr = head; ListNode *pPrev = NULL; ListNode *pNext = NULL; while (pCurr != NUL原创 2015-05-13 09:36:03 · 532 阅读 · 0 评论 -
Reverse Linked List II
ListNode *reverseBetween(ListNode* head, int m, int n) { if (m == n) return head; n -= m; ListNode prehead(0); prehead.next = hea原创 2015-06-08 22:11:15 · 428 阅读 · 0 评论