算法初级——数组中只出现一次的数字

一个整型数组里除了两个数字之外,其他的数字都出现了两次。请写程序找出这两个只出现一次的数字。 知识点:异或操作,任何数与本身异或等于0 异或就是同为0,异为1. 位运算 右移一位 判断两个只出现了一次的数字,先将所有元素异或操作,结果为两个只出现一次的的元素异或的结果,找出sum的第一位为1的数字,(两个不一样的数字一定有某些位置数字不一样,找出第一个不一样的数字),以这个位置将元素分为两部分,一

- 阅读全文 -

算法初级——二叉树的前驱结点

/* * 前驱节点,中序遍历的前面的节点 * 如果有左子树,那么就是左子树上最右的节点,如果没有左子树,那么一起向上移动,直到该节点位于右子树, */ public class 二叉树的前驱节点 { public static class Node { public int value; public Node left; public Node right; p

- 阅读全文 -

算法初级——二叉树的后继节点

在二叉树中找到一个节点的后继节点 【题目】 现在有一种新的二叉树节点类型如下: public class Node { public int value; public Node left; public Node right; public Node parent; public Node(int data) { this.value = data; }} 该结构比普通二叉树节点结构多了一个指向

- 阅读全文 -

算法初级——直观打印二叉树

如何直观的打印一颗二叉树 public class 直观打印二叉树 { public static class Node { public int value; public Node left; public Node right; public Node(int data) { this.value = data; } } publ

- 阅读全文 -

算法初级——二叉树的遍历

实现二叉树的先序、中序、后序遍历,包括递归方式和非递归方式 /* * 二叉树的遍历,二叉树每个节点在遍历的过程中访问三次,第一次访问打印为先序遍历,第二次访问打印为中序打印,第三次访问打印为后序打印。 */ import java.util.Stack; public class 二叉树的遍历 { public static class Node{ public int value

- 阅读全文 -